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.

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

ld.so.1(1), sotruss(1), attributes(7)

Linker and Libraries Guide

July 3, 2007 OmniOS