Copyright (c) 2012 Petr Machata, Red Hat Inc.
Copyright (c) 1997-2005 Juan Cespedes <cespedes@debian.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
02110-1301 USA
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 ("..."). This also limits number of recursive structure expansions.
-b, --no-signals Disable printing of signals recieved by the traced process.
-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:
01 DEBUG_GENERAL. Shows helpful progress information
010 DEBUG_EVENT. Shows every event received by a traced program
020 DEBUG_PROCESS. Shows every action ltrace carries upon a traced process
040 DEBUG_FUNCTION. Shows every entry to internal functions
-e filter A qualifying expression which modifies which library calls to trace. The format of the filter expression is described in the section FILTER EXPRESSIONS. If more than one -e option appears on the command line, the library calls that match any of them are traced. If no -e is given, @MAIN is assumed as a default.
-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 library_pattern Display only calls to functions implemented by libraries that match library_pattern. Multiple library patters can be specified with several instances of this option. Syntax of library_pattern is described in section FILTER EXPRESSIONS. Note that while this option selects calls that might be directed to the selected libraries, there's no actual guarantee that the call won't be directed elsewhere due to e.g. LD_PRELOAD or simply dependency ordering. If you want to make sure that symbols in given library are actually called, use -x @library_pattern instead.
-L When no -e option is given, don't assume the default action of @MAIN.
-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.
-w, --where NR Show backtrace of NR stack frames for each traced function. This option enabled only if libunwind support was enabled at compile time.
-x filter A qualifying expression which modifies which symbol table entry points to trace. The format of the filter expression is described in the section FILTER EXPRESSIONS. If more than one -x option appears on the command line, the symbols that match any of them are traced. No entry points are traced if no -x is given.
-V, --version Show the version number of ltrace and exit.
It only works on Linux and in a small subset of architectures.
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
Petr Machata <pmachata@redhat.com>