dylibprof(1)dylibprof(1)NAMEdylibprof - control the shared pc sampling of a dynamic shared library
SYNOPSISdylibprof [-e | -d] | [-c | -r | -b | -h | -p [-o <file>] <dylib>]
DESCRIPTION
Dylibprof along with the server /usr/etc/profileServer allows shared
program counter sampling of a dynamic shared library across all the
programs that use the library.
To use dylibprof(1), /usr/etc/profileServer must be running. Currently
/usr/etc/profileServer must be executed from a console login as root
due to bootstrap port issues. So first start /usr/etc/profileServer
and leave it running in the back ground:
# /usr/etc/profileServer >& /dev/console &
/usr/etc/profileServer starts up with shared pc sampling disabled. It
should not be left running with shared pc sampling enabled if no
sampling is being done as every launch of a program that uses the
dynamic linker is effected. This is true even to a small extent if
there no libraries being sampled.
USING /etc/bootstrap.conf IS CURRENTLY BROKEN. If you need to profile
from boot up for all processes then the following line can be added to
/etc/bootstrap.conf:
server "/usr/etc/profileServer /lib/libsys_s.A.dylib" services NSProfileServer;
Before any dynamic shared library can be sampled sampling must be enabled as
follows:
% dylibprof-e
It can then later be disabled when no more sampling is to be done with:
% dylibprof-d
EXAMPLE
To sample the dynamic shared library /lib/libsys_s.A.dylib for example
requires the following steps. First create a sample buffer for the
library:
% dylibprof-c /lib/libsys_s.A.dylib
Then begin the sampling:
% dylibprof-b /lib/libsys_s.A.dylib
After this programs launched using this library will be part of the
shared pc sampling. Typlically what would be done is to then use the
system normally for a number of hours.
Then to halt the sampling:
% dylibprof-h /lib/libsys_s.A.dylib
The profiling output file (a gmon.out file) can be created with:
% dylibprof-p -o /tmp/gmon.out /lib/libsys_s.A.dylib
Using the profiling output file and the library a profile listing and a
time based order file (time.order) can be created with: gprof(1):
% gprof -S /lib/libsys_s.A.dylib gmon.out
When no more sampling for this library is to be done the sample buffer can be
removed with:
% dylibprof-r /lib/libsys_s.A.dylib
The options are:
-e Enable shared program counter sampling for dynamic libraries.
-d Disable shared program counter sampling for dynamic libraries.
-c Create a pc sample buffer for the library.
-b Begin sampling for programs subsequently launched using the
library.
-h Halt sampling for programs subsequently launched using the
library.
-p Produce a profiling output file (a gmon.out file) for the
library.
-r Remove the pc sample buffer for the library.
-o name
Use the file name instead of gmon.out when producing the
profiling output file with the -p above.
FILES
gmon.out profile output file
/usr/adm/profile/profile.XXXXXX the sample buffer file
SEE ALSOgprof(1)NeXT Computer, Inc. June 29, 1995 dylibprof(1)