Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

dylibprof(1) [opendarwin man page]

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

CMPDYLIB(1)						      General Commands Manual						       CMPDYLIB(1)

NAME
cmpdylib - compare two dynamic shared libraries for compatibility SYNOPSIS
cmpdylib oldLibrary newLibrary DESCRIPTION
cmpdylib compares two versions of a dynamic shared library to see if they are compatible with each other. If the two versions are incompat- ible, the reason is printed to stdout, and the exit status is nonzero. If they are compatible, nothing is printed, and the exit status is zero. To see if the two versions are compatible, cmpdylib first verifies that newLibrary was built for all of the architectures that oldLibrary was built for. If so, for each architecture, it checks to see if the global symbols defined in oldLibrary are still defined in newLibrary. It then looks for new symbols, symbols defined in newLibrary that are not defined in oldLibrary. If it finds new symbols, it compares the compatibility version numbers of the two libraries. If the compatibility version number of newLibrary is greater than oldLibrary, the libraries are still compatible. If the compatibility version number is the same or less, the libraries are incompatible. OPTIONS
oldLibrary The older version of the library. newLibrary The newer version of the library. EXAMPLES
This example shows the result of performing cmpdylib on two incompatible versions of the Foundation library. As stated, the versions are incompatible because the newer version was not built for the ppc architecture. cmpdylib /System/Library/Frameworks/Foundation.framework/Foundation Foundation_proj/Foundation cmpdylib: file: Foundation_proj/Foundation does not contain architecture: ppc cmpdylib: new dynamic shared library: Foundation_proj/Foundation does not contain architecture ppc DIAGNOSTICS
The exit status is zero if the library versions are compatible and nonzero if they are incompatible. BUGS
There are lots of other things that could be checked for that are not (such as the Objective C API). Apple Computer, Inc. November 3, 1997 CMPDYLIB(1)
Man Page