thread specific informations.
In order to do that, and in order to avoid KBI breakage with existing
infrastructure the following semantic is implemented:
- For live programs, a new member to the PT_LWPINFO is added (pl_tdname)
- For cores, a new ELF note is added (NT_THRMISC) that can be used for
storing thread specific, miscellaneous, informations. Right now it is
just popluated with a thread name.
GDB, then, retrieves the correct informations from the corefile via the
BFD interface, as it groks the ELF notes and create appropriate
pseudo-sections.
Sponsored by: Sandvine Incorporated
Tested by: gianni
Discussed with: dim, kan, kib
MFC after: 2 weeks
read_initial_length detects pointer size by checking first
4 bytes of .debug_line and stores it in struct comp_unit_head *
passed to it as second argument. By passing NULL to a
read_initial_length we ignore actual pointer size (8 bytes) and
use default (4 bytes) which results in wrong offsets of header fields.
a variety of bugs in binutils related to handling of 64-bit PPC ELF,
provides a GCC configuration for 64-bit PowerPC on FreeBSD, and
associated build systems tweaks.
Obtained from: projects/ppc64
on mips. Its not fully done yet but its a start.
Obtained from: JC - c.jayachandran@gmail.com
M gnu/usr.bin/gdb/kgdb/trgt_mips.c
M gnu/usr.bin/gdb/arch/mips/init.c
M gnu/usr.bin/gdb/arch/mips/Makefile
M gnu/usr.bin/Makefile
M contrib/gdb/gdb/mips-tdep.h
even if some appear to have (partially) corrupted stack traces.
E.g. kernel crashdumps typically have stack weirdness at
userland-kernel boundary.
Obtained from: vendor/upstream (CVS rev 1.118 of stack.c)
Reviewed by: emaste
Approved by: jhb
This fixes a situation where GDB gives incorrect backtraces when a signal
handler is in the call chain.
Submitted by: Stu Grossman <grossman@juniper.net>
ia64_write_reg() and call these whenever we read or write registers from
and to memory. This way we correctly read registers from addresses in
the register cache and thus fixes backtraces when the saved registers
(such as rp and ar.pfs) are in dirty stacked registers.
o s/TARGET_XFER_DIRTY/NATIVE_XFER_DIRTY/g to be conformant,
o Handle TARGET_OBJECT_DIRTY for core files. Required on Linux,
o Replace ia64_fbsd_supply_fpregs() and ia64_fbsd_supply_gregs()
with supply_fpregset() and supply_gregset() resp. Needed to
support libthread_db.
o For target_read_partial(), pass the address of bspstore as the
annex instead of bspstore itself. This fixes crossbuilds. The
annex is a pointer, while bspstore is a ULONGEST.
o In ia64_frame_prev_register(), handle dirty stacked registers.
as the legal prerequisites are met. To avoid future merge conflicts,
this is added to the vendor branch. The changes are seperately kept
in FREEBSD-diffs for easy reference.