dapptrace prints details on user and library function calls. By default it traces user functions only, options can be used to trace library
Of particular interest is the elapsed times and on cpu times, which can identify both function calls that are slow to complete, and those
which are consuming CPU cycles.
Since this uses DTrace, only users with root privileges can run this command.
-a print all details
dynamic variable buffer size. Increase this if you notice dynamic variable drop errors. The default is "4m" for 4 megabytes per CPU.
-c print function call counts
-d print relative timestamps, us
-e print elapsed times, us
-F print flow indentation
-l force printing of pid/lwpid per line
-o print on-cpu times, us
-p PID examine this PID
-u lib trace this library instead
-U trace all library and user functions
run and examine the "df -h" command,
# dapptrace df -h
examine PID 1871,
# dapptrace -p 1871
print using flow indents,
# dapptrace -Fp 1871
print elapsed and CPU times,
# dapptrace -eop 1871
Process ID / Lightweight Process ID
relative timestamps to the start of the thread, us (microseconds)
ELAPSD elapsed time for this system call, us
CPU on-cpu time for this system call, us
function call name, with some arguments in hexadecimal
See the DTraceToolkit for further documentation under the Docs directory. The DTraceToolkit docs may include full worked examples with ver-
bose descriptions explaining the output.
dapptrace will run forever until Ctrl-C is hit, or if a command was executed dapptrace will finish when the command ends.