Content-type: text/html
/usr/ccs/bin/whocalls [-l wholib] [-s] funcname executable [arguments...]
whocalls is a simple example of a utility based on the Link-Auditing functionality of ld.so.1(1) that permits the tracking of a given function call. See the Linker and Libraries Guide for a detailed description of the Link-Auditing mechanism. The executable is run as normal with any associated arguments. Each time the procedure funcname is called, both the arguments to that procedure and a stack trace are displayed on standard output.
The following options are supported:
-l wholib Specifies an alternate who.so Link-Auditing library to use.
-s When available, examines and uses the .symtab symbol table for local symbols. This is a little more expensive than using the .dynsym symbol table, but can produce more detailed stack trace information.
Example 1: Tracking function calls
This example tracks the calls to printf() made by a simple helloworld program:
example% whocalls printf helloworld printf(0x106e4, 0xef625310, 0xef621ba8) helloworld:main+0x10 helloworld:_start+0x5c Hello World
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
Availability | SUNWtoo |
ld.so.1(1), sotruss(1), attributes(5)
Linker and Libraries Guide