mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2025-02-13 05:20:44 +00:00
* linux-nat.c (linux_nat_do_thread_registers): Check for
NULL collect_regset method.
This commit is contained in:
parent
540b8a309d
commit
55e969c159
@ -1,3 +1,8 @@
|
|||||||
|
2006-05-06 David S. Miller <davem@sunset.davemloft.net>
|
||||||
|
|
||||||
|
* linux-nat.c (linux_nat_do_thread_registers): Check for
|
||||||
|
NULL collect_regset method.
|
||||||
|
|
||||||
2006-05-06 Ulrich Weigand <uweigand@de.ibm.com>
|
2006-05-06 Ulrich Weigand <uweigand@de.ibm.com>
|
||||||
|
|
||||||
* s390-tdep.c (s390_collect_regset): New function.
|
* s390-tdep.c (s390_collect_regset): New function.
|
||||||
|
@ -2549,70 +2549,52 @@ linux_nat_do_thread_registers (bfd *obfd, ptid_t ptid,
|
|||||||
unsigned long lwp = ptid_get_lwp (ptid);
|
unsigned long lwp = ptid_get_lwp (ptid);
|
||||||
struct gdbarch *gdbarch = current_gdbarch;
|
struct gdbarch *gdbarch = current_gdbarch;
|
||||||
const struct regset *regset;
|
const struct regset *regset;
|
||||||
int core_regset_p, record_reg_p;
|
int core_regset_p;
|
||||||
|
|
||||||
core_regset_p = gdbarch_regset_from_core_section_p (gdbarch);
|
core_regset_p = gdbarch_regset_from_core_section_p (gdbarch);
|
||||||
record_reg_p = 1;
|
if (core_regset_p
|
||||||
if (core_regset_p)
|
&& (regset = gdbarch_regset_from_core_section (gdbarch, ".reg",
|
||||||
{
|
sizeof (gregs))) != NULL
|
||||||
regset = gdbarch_regset_from_core_section (gdbarch, ".reg",
|
&& regset->collect_regset != NULL)
|
||||||
sizeof (gregs));
|
regset->collect_regset (regset, current_regcache, -1,
|
||||||
if (regset)
|
&gregs, sizeof (gregs));
|
||||||
regset->collect_regset (regset, current_regcache, -1,
|
|
||||||
&gregs, sizeof (gregs));
|
|
||||||
else
|
|
||||||
record_reg_p = 0;
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
fill_gregset (&gregs, -1);
|
fill_gregset (&gregs, -1);
|
||||||
|
|
||||||
if (record_reg_p)
|
note_data = (char *) elfcore_write_prstatus (obfd,
|
||||||
note_data = (char *) elfcore_write_prstatus (obfd,
|
note_data,
|
||||||
note_data,
|
note_size,
|
||||||
note_size,
|
lwp,
|
||||||
lwp,
|
stop_signal, &gregs);
|
||||||
stop_signal, &gregs);
|
|
||||||
|
|
||||||
record_reg_p = 1;
|
if (core_regset_p
|
||||||
if (core_regset_p)
|
&& (regset = gdbarch_regset_from_core_section (gdbarch, ".reg2",
|
||||||
{
|
sizeof (fpregs))) != NULL
|
||||||
regset = gdbarch_regset_from_core_section (gdbarch, ".reg2",
|
&& regset->collect_regset != NULL)
|
||||||
sizeof (fpregs));
|
regset->collect_regset (regset, current_regcache, -1,
|
||||||
if (regset)
|
&fpregs, sizeof (fpregs));
|
||||||
regset->collect_regset (regset, current_regcache, -1,
|
|
||||||
&fpregs, sizeof (fpregs));
|
|
||||||
else
|
|
||||||
record_reg_p = 0;
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
fill_fpregset (&fpregs, -1);
|
fill_fpregset (&fpregs, -1);
|
||||||
|
|
||||||
if (record_reg_p)
|
note_data = (char *) elfcore_write_prfpreg (obfd,
|
||||||
note_data = (char *) elfcore_write_prfpreg (obfd,
|
note_data,
|
||||||
note_data,
|
note_size,
|
||||||
note_size,
|
&fpregs, sizeof (fpregs));
|
||||||
&fpregs, sizeof (fpregs));
|
|
||||||
|
|
||||||
#ifdef FILL_FPXREGSET
|
#ifdef FILL_FPXREGSET
|
||||||
record_reg_p = 1;
|
if (core_regset_p
|
||||||
if (core_regset_p)
|
&& (regset = gdbarch_regset_from_core_section (gdbarch, ".reg-xfp",
|
||||||
{
|
sizeof (fpxregs))) != NULL
|
||||||
regset = gdbarch_regset_from_core_section (gdbarch, ".reg-xfp",
|
&& regset->collect_regset != NULL)
|
||||||
sizeof (fpxregs));
|
regset->collect_regset (regset, current_regcache, -1,
|
||||||
if (regset)
|
&fpxregs, sizeof (fpxregs));
|
||||||
regset->collect_regset (regset, current_regcache, -1,
|
|
||||||
&fpxregs, sizeof (fpxregs));
|
|
||||||
else
|
|
||||||
record_reg_p = 0;
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
fill_fpxregset (&fpxregs, -1);
|
fill_fpxregset (&fpxregs, -1);
|
||||||
|
|
||||||
if (record_reg_p)
|
note_data = (char *) elfcore_write_prxfpreg (obfd,
|
||||||
note_data = (char *) elfcore_write_prxfpreg (obfd,
|
note_data,
|
||||||
note_data,
|
note_size,
|
||||||
note_size,
|
&fpxregs, sizeof (fpxregs));
|
||||||
&fpxregs, sizeof (fpxregs));
|
|
||||||
#endif
|
#endif
|
||||||
return note_data;
|
return note_data;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user