Allow users of gprof to get per run output files (using the pid)

PR:		bin/99800
Submitted by:	Peter Jeremy <peterjeremy@optushome.com.au>
Reviewed by:	jilles (code)
Reviewed by:	dwhite (doc)
Approved by:	cperciva
MFC after:	1 week
This commit is contained in:
eadler 2012-04-29 22:19:58 +00:00
parent 1781eecdcd
commit b7552d4954
2 changed files with 12 additions and 1 deletions

View File

@ -157,7 +157,12 @@ _mcleanup(void)
}
moncontrol(0);
snprintf(outname, sizeof(outname), "%s.gmon", _getprogname());
if (getenv("PROFIL_USE_PID"))
snprintf(outname, sizeof(outname), "%s.%d.gmon",
_getprogname(), getpid());
else
snprintf(outname, sizeof(outname), "%s.gmon", _getprogname());
fd = _open(outname, O_CREAT|O_TRUNC|O_WRONLY, 0666);
if (fd < 0) {
_warn("_mcleanup: %s", outname);

View File

@ -98,6 +98,12 @@ however, all functions in that address range will
have their execution time measured.
Profiling begins on return from
.Fn monstartup .
.Sh ENVIRONMENT
The following environment variables affect the execution of
.Nm :
.Bl -tag -width ".Ev PROFIL_USE_PID"
.It PROFIL_USE_PID
If set, the pid of the process is inserted into the filename.
.Sh FILES
.Bl -tag -width progname.gmon -compact
.It Pa progname.gmon