Fix inconsistencies in anonymous DOF files.

The DOF file output by dtrace -A contains only the loadable sections.
However, as it was created by a call to dtrace_dof_create() without
flags, the original DOF was created with the loadable sections.  The
result is that the DOF includes the section headers for the unloadable
sections (COMMENTS and UTSNAME) without these sections actually being
present.  This is inconsistent.

A simple change to anon_prog() ensures that the missing sections are
present in the outputted DOF.  Alternatively, the call to
dtrace_dof_create() could pass the DTRACE_D_STRIP flag stripping out the
loadable sections.  As the unloadable sections contain info useful for
debugging purposes they haven't been stripped.

Submitted by:	Graeme Jenkinson <graeme.jenkinson@cl.cam.ac.uk>
MFC after:	1 week
Sponsored by:	DARPA, AFRL
Differential Revision:	https://reviews.freebsd.org/D21875
This commit is contained in:
Mark Johnston 2019-11-18 18:34:23 +00:00
parent fe6d5344c2
commit 066d9631cb
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=354822

View File

@ -681,7 +681,7 @@ anon_prog(const dtrace_cmd_t *dcp, dof_hdr_t *dof, int n)
dfatal("failed to create DOF image for '%s'", dcp->dc_name);
p = (uchar_t *)dof;
q = p + dof->dofh_loadsz;
q = p + dof->dofh_filesz;
#ifdef __FreeBSD__
/*