Re: [PATCH v4] Generate NT_PROCSTAT_{AUXV,VMMAP,PS_STRINGS} in FreeBSD coredumps

John Baldwin
2018-08-23T16:16:11Z

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