This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH v4] Generate NT_PROCSTAT_{AUXV,VMMAP,PS_STRINGS} in FreeBSD coredumps
- From: John Baldwin <jhb at FreeBSD dot org>
- To: Simon Ser <contact at emersion dot fr>, gdb-patches at sourceware dot org
- Date: Thu, 23 Aug 2018 17:15:20 +0100
- Subject: Re: [PATCH v4] Generate NT_PROCSTAT_{AUXV,VMMAP,PS_STRINGS} in FreeBSD coredumps
- References: <iz0c1bAaNjgAACgCF3B9wWvubTieWo_FAMspoBDj72Th_JjQgzLhxnkAApDxTVICOTRuGk3F1EFNJDl96yeYU6oFRqZToAbjqKR-b61opzQ=@emersion.fr> <_LRTDYZchE3m5uYvETytJBLgsrWRhqIDAXHnzDsU6kJBhItMetbpfxGe8OJD9a4K4b9brDxF9YvXWOzdDfTRBRfrZI-4XLl8mWwlrEpqmm0=@emersion.fr> <ZSfA0oISlP0CEsBaJ2ceAUxBvQcq7LXW7SgPhz97Q4bU03Dacg-cDMiyXvgtvQj8F97BHdw4bufNjnemgNP2BnQrdc5XsKTSeRBVAvE7cTE=@emersion.fr> <ib_TVW3fonqPSdh5gAZOPNh1ENxyuGpJ0Sr8sa77CSryEWuzV3XqkjpFnBmMC80uaXHN4xw6PxlK_7JvzAp3sFZQuCujTe0BC4nE1736W00=@emersion.fr>
On 8/23/18 3:02 PM, Simon Ser wrote:
> gcore generates NT_AUXV and NT_FILE notes for Linux targets. On
> FreeBSD auxv is stored in a NT_PROCSTAT_AUXV section, file mappings
> are stored in a NT_PROCSTAT_VMMAP and both are prefixed with the
> struct size.
>
> 2018-08-23 Simon Ser <contact@emersion.fr>
> * target.h (enum target_object): add FreeBSD-specific
> TARGET_OBJECT_FREEBSD_VMMAP and TARGET_OBJECT_FREEBSD_PS_STRINGS
> * 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_corefile_notes): write NT_PROCSTAT_AUXV,
> NT_PROCSTAT_VMMAP and NT_PROCSTAT_PS_STRINGS notes
> ---
> +
> + memcpy (buf, &struct_size, sizeof (struct_size));
> + if (sysctl (mib, 4, buf + sizeof (struct_size), &buflen, NULL, 0) != 0)
One nit here: buflen is too large on input. You should do
'buflen -= sizeof(struct size)' before calling sysctl().
Agreed that auxv sysctl issues belong to a separate patch.
--
John Baldwin