Add support to readelf for reading FreeBSD ELF core notes.
binutils/ChangeLog: * readelf.c (get_freebsd_elfcore_note_type): New (process_note): Add support for FreeBSD core notes. include/ChangeLog: * elf/common.h (NT_FREEBSD_THRMISC): Define. (NT_FREEBSD_PROCSTAT_PROC): Define. (NT_FREEBSD_PROCSTAT_FILES): Define. (NT_FREEBSD_PROCSTAT_VMMAP): Define. (NT_FREEBSD_PROCSTAT_GROUPS): Define. (NT_FREEBSD_PROCSTAT_UMASK): Define. (NT_FREEBSD_PROCSTAT_RLIMIT): Define. (NT_FREEBSD_PROCSTAT_OSREL): Define. (NT_FREEBSD_PROCSTAT_PSSTRINGS): Define. (NT_FREEBSD_PROCSTAT_AUXV): Define.
This commit is contained in:
parent
10e3ed9029
commit
f4ddf30f11
4 changed files with 67 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
|||
2016-01-19 John Baldwin <jhb@FreeBSD.org>
|
||||
|
||||
* readelf.c (get_freebsd_elfcore_note_type): New
|
||||
(process_note): Add support for FreeBSD core notes.
|
||||
|
||||
2016-01-18 Miranda Cupertino <Cupertino.Miranda@synopsys.com>
|
||||
Zissulescu Claudiu <Claudiu.Zissulescu@synopsys.com>
|
||||
|
||||
|
|
|
@ -15410,6 +15410,37 @@ process_netbsd_elf_note (Elf_Internal_Note * pnote)
|
|||
return 1;
|
||||
}
|
||||
|
||||
static const char *
|
||||
get_freebsd_elfcore_note_type (unsigned e_type)
|
||||
{
|
||||
static char buff[64];
|
||||
|
||||
switch (e_type)
|
||||
{
|
||||
case NT_FREEBSD_THRMISC:
|
||||
return _("NT_THRMISC (thrmisc structure)");
|
||||
case NT_FREEBSD_PROCSTAT_PROC:
|
||||
return _("NT_PROCSTAT_PROC (proc data)");
|
||||
case NT_FREEBSD_PROCSTAT_FILES:
|
||||
return _("NT_PROCSTAT_FILES (files data)");
|
||||
case NT_FREEBSD_PROCSTAT_VMMAP:
|
||||
return _("NT_PROCSTAT_VMMAP (vmmap data)");
|
||||
case NT_FREEBSD_PROCSTAT_GROUPS:
|
||||
return _("NT_PROCSTAT_GROUPS (groups data)");
|
||||
case NT_FREEBSD_PROCSTAT_UMASK:
|
||||
return _("NT_PROCSTAT_UMASK (umask data)");
|
||||
case NT_FREEBSD_PROCSTAT_RLIMIT:
|
||||
return _("NT_PROCSTAT_RLIMIT (rlimit data)");
|
||||
case NT_FREEBSD_PROCSTAT_OSREL:
|
||||
return _("NT_PROCSTAT_OSREL (osreldate data)");
|
||||
case NT_FREEBSD_PROCSTAT_PSSTRINGS:
|
||||
return _("NT_PROCSTAT_PSSTRINGS (ps_strings data)");
|
||||
case NT_FREEBSD_PROCSTAT_AUXV:
|
||||
return _("NT_PROCSTAT_AUXV (auxv data)");
|
||||
}
|
||||
return get_note_type (e_type);
|
||||
}
|
||||
|
||||
static const char *
|
||||
get_netbsd_elfcore_note_type (unsigned e_type)
|
||||
{
|
||||
|
@ -15659,6 +15690,10 @@ process_note (Elf_Internal_Note * pnote)
|
|||
/* GNU-specific object file notes. */
|
||||
nt = get_gnu_elf_note_type (pnote->type);
|
||||
|
||||
else if (const_strneq (pnote->namedata, "FreeBSD"))
|
||||
/* FreeBSD-specific core file notes. */
|
||||
nt = get_freebsd_elfcore_note_type (pnote->type);
|
||||
|
||||
else if (const_strneq (pnote->namedata, "NetBSD-CORE"))
|
||||
/* NetBSD-specific core file notes. */
|
||||
nt = get_netbsd_elfcore_note_type (pnote->type);
|
||||
|
|
|
@ -1,3 +1,16 @@
|
|||
2016-01-19 John Baldwin <jhb@FreeBSD.org>
|
||||
|
||||
* elf/common.h (NT_FREEBSD_THRMISC): Define.
|
||||
(NT_FREEBSD_PROCSTAT_PROC): Define.
|
||||
(NT_FREEBSD_PROCSTAT_FILES): Define.
|
||||
(NT_FREEBSD_PROCSTAT_VMMAP): Define.
|
||||
(NT_FREEBSD_PROCSTAT_GROUPS): Define.
|
||||
(NT_FREEBSD_PROCSTAT_UMASK): Define.
|
||||
(NT_FREEBSD_PROCSTAT_RLIMIT): Define.
|
||||
(NT_FREEBSD_PROCSTAT_OSREL): Define.
|
||||
(NT_FREEBSD_PROCSTAT_PSSTRINGS): Define.
|
||||
(NT_FREEBSD_PROCSTAT_AUXV): Define.
|
||||
|
||||
2016-01-18 Miranda Cupertino <Cupertino.Miranda@synopsys.com>
|
||||
Zissulescu Claudiu <Claudiu.Zissulescu@synopsys.com>
|
||||
|
||||
|
|
|
@ -595,6 +595,20 @@
|
|||
/* Note segment for SystemTap probes. */
|
||||
#define NT_STAPSDT 3
|
||||
|
||||
/* Note segments for core files on FreeBSD systems. Note name is
|
||||
"FreeBSD". */
|
||||
|
||||
#define NT_FREEBSD_THRMISC 7 /* Thread miscellaneous info. */
|
||||
#define NT_FREEBSD_PROCSTAT_PROC 8 /* Procstat proc data. */
|
||||
#define NT_FREEBSD_PROCSTAT_FILES 9 /* Procstat files data. */
|
||||
#define NT_FREEBSD_PROCSTAT_VMMAP 10 /* Procstat vmmap data. */
|
||||
#define NT_FREEBSD_PROCSTAT_GROUPS 11 /* Procstat groups data. */
|
||||
#define NT_FREEBSD_PROCSTAT_UMASK 12 /* Procstat umask data. */
|
||||
#define NT_FREEBSD_PROCSTAT_RLIMIT 13 /* Procstat rlimit data. */
|
||||
#define NT_FREEBSD_PROCSTAT_OSREL 14 /* Procstat osreldate data. */
|
||||
#define NT_FREEBSD_PROCSTAT_PSSTRINGS 15 /* Procstat ps_strings data. */
|
||||
#define NT_FREEBSD_PROCSTAT_AUXV 16 /* Procstat auxv data. */
|
||||
|
||||
/* Note segments for core files on NetBSD systems. Note name
|
||||
must start with "NetBSD-CORE". */
|
||||
|
||||
|
|
Loading…
Reference in a new issue