|Linux & Unix Commands - Search Man Pages
dylibprof - control the shared pc sampling of a dynamic shared library
dylibprof [-e | -d] | [-c | -r | -b | -h | -p [-o <file>] <dylib>]
Dylibprof along with the server /usr/libexec/profileServer allows shared program counter
sampling of a dynamic shared library across all the programs that use the library.
To use dylibprof(1), /usr/libexec/profileServer must be running. So first start
/usr/libexec/profileServer and leave it running in the back ground:
% /usr/libexec/profileServer >& /dev/console &
/usr/libexec/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.
If you need to profile from boot up for all processes then the following line can be added
server "/usr/libexec/profileServer" services NSProfileServer NSProfileControl;
Before any dynamic shared library can be sampled sampling must be enabled as
% dylibprof -e
It can then later be disabled when no more sampling is to be done with:
% dylibprof -d
To sample the dynamic shared library /System/Library/Frameworks/System.framework/Ver-
sions/B/System for example requires the following steps. First create a sample buffer for
% dylibprof -c /System/Library/Frameworks/System.framework/Versions/B/System
Then begin the sampling:
% dylibprof -b /System/Library/Frameworks/System.framework/Versions/B/System
After this programs launched using this library will be part of the shared pc sampling.
Typically what would be done is to then use the system normally for a number of hours.
Then to halt the sampling:
% dylibprof -h /System/Library/Frameworks/System.framework/Versions/B/System
The profiling output file (a gmon.out file) can be created with:
% dylibprof -p -o /tmp/gmon.out /System/Library/Frameworks/System.framework/Versions/B/System
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 /System/Library/Frameworks/System.framework/Versions/B/System /tmp/gmon.out
When no more sampling for this library is to be done the sample buffer can be
% dylibprof -r /System/Library/Frameworks/System.framework/Versions/B/System
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.
Use the file name instead of gmon.out when producing the profiling output file with
the -p above.
gmon.out profile output file
/var/tmp/profile/profile.XXXXXX the sample buffer file
Apple Computer, Inc. March 19, 2002 DYLIBPROF(1)
All times are GMT -4. The time now is 01:46 PM.