WHOCALLS(1) User Commands WHOCALLS(1)
whocalls - report on the calls to a specific procedure
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.
The following 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
ld.so.1(1), sotruss(1), attributes(7)
Linker and Libraries Guide
July 3, 2007 WHOCALLS(1)
NAME
whocalls - report on the calls to a specific procedure
SYNOPSIS
whocalls [-l wholib] [-s] funcname executable
[arguments]...
DESCRIPTION
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.
OPTIONS
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.
EXAMPLES
Example 1: Tracking Function Calls
The following 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 ALSO
ld.so.1(1), sotruss(1), attributes(7)
Linker and Libraries Guide
July 3, 2007 WHOCALLS(1)