diff options
author | John Baldwin <jhb@FreeBSD.org> | 2017-06-28 11:11:20 -0700 |
---|---|---|
committer | John Baldwin <jhb@FreeBSD.org> | 2017-07-07 16:08:33 -0700 |
commit | 382b69bbb7a4fec5213d2382fe70a68d7a46b3e7 (patch) | |
tree | da98991f5df0b8bda0d6f31efa9e60de482e832c /gdb/gdbarch.h | |
parent | 6e5eab33abe09041b29e0ce484f684ad0ffe80a5 (diff) | |
download | gdb-382b69bbb7a4fec5213d2382fe70a68d7a46b3e7.zip gdb-382b69bbb7a4fec5213d2382fe70a68d7a46b3e7.tar.gz gdb-382b69bbb7a4fec5213d2382fe70a68d7a46b3e7.tar.bz2 |
Add a new gdbarch method to fetch signal information from core files.
Previously the core_xfer_partial method used core_get_siginfo to handle
TARGET_OBJECT_SIGNAL_INFO requests. However, core_get_siginfo looked for
Linux-specific sections in the core file. To support fetching siginfo
from cores on other systems, add a new gdbarch method (`core_xfer_siginfo`)
and move the body of the existing core_get_siginfo into a
linux_core_xfer_siginfo implementation of this method in linux-tdep.c.
gdb/ChangeLog:
* corelow.c (get_core_siginfo): Remove.
(core_xfer_partial): Use the gdbarch "core_xfer_siginfo" method
instead of get_core_siginfo.
* gdbarch.sh (core_xfer_siginfo): New gdbarch callback.
* gdbarch.h: Re-generate.
* gdbarch.c: Re-generate.
* linux-tdep.c (linux_core_xfer_siginfo): New.
(linux_init_abi): Install gdbarch "core_xfer_siginfo" method.
Diffstat (limited to 'gdb/gdbarch.h')
-rw-r--r-- | gdb/gdbarch.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gdb/gdbarch.h b/gdb/gdbarch.h index ab7561f..1c95301 100644 --- a/gdb/gdbarch.h +++ b/gdb/gdbarch.h @@ -933,6 +933,16 @@ typedef const char * (gdbarch_core_thread_name_ftype) (struct gdbarch *gdbarch, extern const char * gdbarch_core_thread_name (struct gdbarch *gdbarch, struct thread_info *thr); extern void set_gdbarch_core_thread_name (struct gdbarch *gdbarch, gdbarch_core_thread_name_ftype *core_thread_name); +/* Read offset OFFSET of TARGET_OBJECT_SIGNAL_INFO signal information + from core file into buffer READBUF with length LEN. Return the number + of bytes read (zero indicates EOF, a negative value indicates failure). */ + +extern int gdbarch_core_xfer_siginfo_p (struct gdbarch *gdbarch); + +typedef LONGEST (gdbarch_core_xfer_siginfo_ftype) (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, ULONGEST len); +extern LONGEST gdbarch_core_xfer_siginfo (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, ULONGEST len); +extern void set_gdbarch_core_xfer_siginfo (struct gdbarch *gdbarch, gdbarch_core_xfer_siginfo_ftype *core_xfer_siginfo); + /* BFD target to use when generating a core file. */ extern int gdbarch_gcore_bfd_target_p (struct gdbarch *gdbarch); |