DYLIBPROF(1) General Commands Manual DYLIBPROF(1)NAME
dylibprof - control the shared pc sampling of a dynamic shared library
SYNOPSIS
dylibprof [-e | -d] | [-c | -r | -b | -h | -p [-o <file>] <dylib>]
DESCRIPTION
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 to /etc/bootstrap.conf:
server "/usr/libexec/profileServer" services NSProfileServer NSProfileControl;
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 /System/Library/Frameworks/System.framework/Versions/B/System for example requires the following
steps. First create a sample buffer for the library:
% 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
removed with:
% 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.
-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
/var/tmp/profile/profile.XXXXXX the sample buffer file
SEE ALSO gprof(1)Apple Computer, Inc. March 19, 2002 DYLIBPROF(1)
Check Out this Related Man Page
KGMON(8) BSD System Manager's Manual KGMON(8)NAME
kgmon -- generate a dump of the operating system's profile buffers
SYNOPSIS
kgmon [-Bbhpr] [-M core] [-N system]
DESCRIPTION
The kgmon utility is used when profiling the operating system. When no arguments are supplied, kgmon indicates the state of operating system
profiling as running, off, or not configured. (see config(8)) If the -p flag is specified, kgmon extracts profile data from the operating
system and produces a gmon.out file suitable for later analysis by gprof(1).
The options are as follows:
-B Resume the collection of high resolution profile data.
-b Resume the collection of low resolution profile data.
-h Stop the collection of profile data.
-p Dump the contents of the profile buffers into a gmon.out file.
-r Reset all the profile buffers. If the -p flag is also specified, the gmon.out file is generated before the buffers are reset.
-M Extract values associated with the name list from the specified core instead of the default /dev/kmem.
-N Extract the name list from the specified system instead of the default /boot/kernel/kernel.
If neither -B nor -b nor -h is specified, the state of profiling collection remains unchanged. For example, if the -p flag is specified and
profile data is being collected, profiling will be momentarily suspended, the operating system profile buffers will be dumped, and profiling
will be immediately resumed.
The profile buffers should be reset when the resolution of the profile data is changed.
FILES
/boot/kernel/kernel the default system
/dev/kmem the default memory
DIAGNOSTICS
Users with only read permission on /dev/kmem cannot change the state of profiling collection. They can get a gmon.out file with the warning
that the data may be inconsistent if profiling is in progress.
SEE ALSO gprof(1), config(8)HISTORY
The kgmon utility appeared in 4.2BSD.
BSD June 6, 1993 BSD