This file is covered by the GNU GPL
Its use is very similar to strace(1) .
-a, --align column Align return values in a specific column (default column is 5/8 of screen width).
-A maxelts Maximum number of array elements to print before suppressing the rest with an ellipsis ("...")
-c Count time and calls for each library call and report a summary on program exit.
-C, --demangle Decode (demangle) low-level symbol names into user-level names. Besides removing any initial underscore prefix used by the system, this makes C++ function names readable.
-d, --debug level Show debugging output of ltrace itself. level must be a sum of some of the following numbers:
0x10 DEBUG_EVENT. Shows every event received by a traced program
0x20 DEBUG_PROCESS. Shows every action ltrace carries upon a traced program
-e expr A qualifying expression which modifies which events to trace. The format of the expression is:
[!]value1[,value2]...
where the values are the functions to trace. Using an exclamation mark negates the set of values. For example -e printf means to trace only the printf library call. By contrast, -e !printf means to trace every library call except printf.
Note that some shells use the exclamation point for history expansion; even inside quoted arguments. If so, you must escape the exclamation point with a backslash.-f Trace child processes as they are created by currently traced processes as a result of the fork(2) or clone(2) system calls. The new process is attached immediately.
-F Load an alternate config file. Normally, /etc/ltrace.conf and ~/.ltrace.conf will be read (the latter only if it exists). Use this option to load the given file or files instead of those two default files.
-h, --help Show a summary of the options to ltrace and exit.
-i Print the instruction pointer at the time of the library call.
-l, --library filename Display only the symbols included in the library filename. Up to 30 library names can be specified with several instances of this option.
-L DON'T display library calls (use it with the -S option).
-n, --indent nr Indent trace output by nr number of spaces for each new nested call. Using this option makes the program flow visualization easy to follow.
-o, --output filename Write the trace output to the file filename rather than to stderr.
-p pid Attach to the process with the process ID pid and begin tracing.
-r Print a relative timestamp with each line of the trace. This records the time difference between the beginning of successive lines.
-s strsize Specify the maximum string size to print (the default is 32).
-S Display system calls as well as library calls
-t Prefix each line of the trace with the time of day.
-tt If given twice, the time printed will include the microseconds.
-ttt If given thrice, the time printed will include the microseconds and the leading portion will be printed as the number of seconds since the epoch.
-T Show the time spent inside each call. This records the time difference between the beginning and the end of each call.
-u username Run command with the userid, groupid and supplementary groups of username . This option is only useful when running as root and enables the correct execution of setuid and/or setgid binaries.
-X extern Some architectures need to know where to set a breakpoint that will be hit after the dynamic linker has run. If this flag is used, then the breakpoint is set at extern , which must be an external function. By default, '_start' is used. NOTE: this flag is only available on the architectures that need it.
-x extern Trace the external function extern . This option may be repeated.
-V, --version Show the version number of ltrace and exit.
Manual page and documentation are not very up-to-date.
Option -f sometimes fails to trace some children.
It only works on Linux and in a small subset of architectures.
Only ELF32 binaries are supported.
Calls to dlopen()ed libraries will not be traced.
If you would like to report a bug, send a message to the mailing list (ltrace-devel@lists.alioth.debian.org), or use the reportbug(1) program if you are under the Debian GNU/Linux distribution.
/etc/ltrace.conf System configuration file
~/.ltrace.conf Personal config file, overrides /etc/ltrace.conf