Generate NT_PROCSTAT_{AUXV,VMMAP,PS_STRINGS} in FreeBSD coredumps
authorSimon Ser <contact@emersion.fr>
Thu, 6 Sep 2018 22:03:19 +0000 (15:03 -0700)
committerJohn Baldwin <jhb@FreeBSD.org>
Thu, 6 Sep 2018 22:07:59 +0000 (15:07 -0700)
commit739ab2e92e1840c9285f3cfce1f1236c0fa68730
treec73a69f78dcdbc8f709727803a395c1d27402425
parentd82b3862f1218134f5301ed990c6db48fcb82b2f
Generate NT_PROCSTAT_{AUXV,VMMAP,PS_STRINGS} in FreeBSD coredumps

gcore generates NT_AUXV and NT_FILE notes for Linux targets.  On
FreeBSD auxv is stored in a NT_PROCSTAT_AUXV section, virtual memory
mappings are stored in a NT_PROCSTAT_VMMAP, and both are prefixed with
the struct size.  In addition, store a NT_PROCSTAT_PS_STRINGS note
saving the initial location of the argv[] and environment[] arrays.

gdb/ChangeLog:

PR gdb/23105
* fbsd-nat.c (fbsd_nat_target::xfer_partial): Add support for
TARGET_OBJECT_FREEBSD_VMMAP and TARGET_OBJECT_FREEBSD_PS_STRINGS.
* fbsd-tdep.c (fbsd_make_note_desc): New.
(fbsd_make_corefile_notes): Write NT_PROCSTAT_AUXV,
NT_PROCSTAT_VMMAP and NT_PROCSTAT_PS_STRINGS notes.
* target.h (enum target_object) Add FreeBSD-specific
TARGET_OBJECT_FREEBSD_VMMAP and TARGET_OBJECT_FREEBSD_PS_STRINGS.
gdb/ChangeLog
gdb/fbsd-nat.c
gdb/fbsd-tdep.c
gdb/target.h