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 Runtime Linker Auditing Interface in Oracle Solaris 11.3 Linkers and Libraries Guide for more information regarding auditing.
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:
Specifies an alternate who.so Link-Auditing library to use.
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
See attributes(5) for descriptions of the following attributes: