Petr Machata | 11f23ba | 2012-10-25 03:39:59 +0200 | [diff] [blame] | 1 | .\" -*-nroff-*- |
Petr Machata | 4e1c066 | 2012-04-24 00:50:07 +0200 | [diff] [blame] | 2 | .\" Copyright (c) 2012 Petr Machata, Red Hat Inc. |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 3 | .\" Copyright (c) 1997-2005 Juan Cespedes <cespedes@debian.org> |
Petr Machata | 11f23ba | 2012-10-25 03:39:59 +0200 | [diff] [blame] | 4 | .\" |
| 5 | .\" This program is free software; you can redistribute it and/or |
| 6 | .\" modify it under the terms of the GNU General Public License as |
| 7 | .\" published by the Free Software Foundation; either version 2 of the |
| 8 | .\" License, or (at your option) any later version. |
| 9 | .\" |
| 10 | .\" This program is distributed in the hope that it will be useful, but |
| 11 | .\" WITHOUT ANY WARRANTY; without even the implied warranty of |
| 12 | .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| 13 | .\" General Public License for more details. |
| 14 | .\" |
| 15 | .\" You should have received a copy of the GNU General Public License |
| 16 | .\" along with this program; if not, write to the Free Software |
| 17 | .\" Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA |
| 18 | .\" 02110-1301 USA |
| 19 | .\" |
| 20 | .TH LTRACE "1" "October 2012" "" "User Commands" |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 21 | .SH NAME |
Juan Cespedes | 07461b6 | 1997-08-22 15:29:10 +0200 | [diff] [blame] | 22 | ltrace \- A library call tracer |
| 23 | |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 24 | .SH SYNOPSIS |
Juan Cespedes | 07461b6 | 1997-08-22 15:29:10 +0200 | [diff] [blame] | 25 | .B ltrace |
Petr Machata | 51e74ac | 2012-09-27 23:43:25 +0200 | [diff] [blame] | 26 | .I "[-bCfghiLrStttV] [-a column] [-A maxelts] [-D level] [-e expr] [-l library_pattern] [-n nr] [-o filename] [-p pid] ... [-s strsize] [-u username] [-w count] [-x extern] ... [--align=column] [--debug=level] [--demangle] [--help] [--indent=nr] [--library=library_pattern] [--no-signals] [--output=filename] [--version] [--where=NR] [command [arg ...]]" |
Juan Cespedes | 07461b6 | 1997-08-22 15:29:10 +0200 | [diff] [blame] | 27 | |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 28 | .SH DESCRIPTION |
Juan Cespedes | 07461b6 | 1997-08-22 15:29:10 +0200 | [diff] [blame] | 29 | .B ltrace |
| 30 | is a program that simply runs the specified |
| 31 | .I command |
| 32 | until it exits. It intercepts and records the dynamic library calls |
| 33 | which are called by the executed process and the signals which are |
| 34 | received by that process. |
Juan Cespedes | ac3db29 | 1998-04-25 14:31:58 +0200 | [diff] [blame] | 35 | It can also intercept and print the system calls executed by the program. |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 36 | .PP |
Juan Cespedes | 07461b6 | 1997-08-22 15:29:10 +0200 | [diff] [blame] | 37 | Its use is very similar to |
Juan Cespedes | 81690ef | 1998-03-13 19:31:29 +0100 | [diff] [blame] | 38 | .BR strace(1) . |
Juan Cespedes | 07461b6 | 1997-08-22 15:29:10 +0200 | [diff] [blame] | 39 | |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 40 | .SH OPTIONS |
| 41 | .TP |
Juan Cespedes | d65efa3 | 2003-02-03 00:22:30 +0100 | [diff] [blame] | 42 | .I \-a, \-\-align column |
Joe Damato | fa2aefc | 2010-10-30 19:56:50 -0700 | [diff] [blame] | 43 | Align return values in a specific |
| 44 | .IR column |
| 45 | (default column is 5/8 of screen width). |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 46 | .TP |
Steve Fink | 1150bc4 | 2006-08-07 06:04:43 +0200 | [diff] [blame] | 47 | .I \-A maxelts |
| 48 | Maximum number of array elements to print before suppressing the rest with an ellipsis ("...") |
| 49 | .TP |
Joe Damato | 59e3fb1 | 2009-11-06 19:45:10 -0800 | [diff] [blame] | 50 | .I \-b, \-\-no-signals |
| 51 | Disable printing of signals recieved by the traced process. |
| 52 | .TP |
Juan Cespedes | d65efa3 | 2003-02-03 00:22:30 +0100 | [diff] [blame] | 53 | .I \-c |
| 54 | Count time and calls for each library call and report a summary on program exit. |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 55 | .TP |
Juan Cespedes | ac3db29 | 1998-04-25 14:31:58 +0200 | [diff] [blame] | 56 | .I \-C, \-\-demangle |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 57 | Decode (demangle) low-level symbol names into user-level names. |
Justin Pryzby | fda2c6f | 2006-07-18 00:05:26 +0200 | [diff] [blame] | 58 | Besides removing any initial underscore prefix used by the system, |
Juan Cespedes | ac3db29 | 1998-04-25 14:31:58 +0200 | [diff] [blame] | 59 | this makes C++ function names readable. |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 60 | .TP |
Juan Cespedes | c5c744a | 2009-07-23 18:22:58 +0200 | [diff] [blame] | 61 | .I \-D, \-\-debug level |
Juan Cespedes | cd8976d | 2009-05-14 13:47:58 +0200 | [diff] [blame] | 62 | Show debugging output of |
| 63 | .B ltrace |
| 64 | itself. |
| 65 | .I level |
| 66 | must be a sum of some of the following numbers: |
| 67 | .RS |
| 68 | .TP |
Juan Cespedes | c5c744a | 2009-07-23 18:22:58 +0200 | [diff] [blame] | 69 | .B 01 |
| 70 | DEBUG_GENERAL. Shows helpful progress information |
| 71 | .TP |
| 72 | .B 010 |
Juan Cespedes | cd8976d | 2009-05-14 13:47:58 +0200 | [diff] [blame] | 73 | DEBUG_EVENT. Shows every event received by a traced program |
| 74 | .TP |
Juan Cespedes | c5c744a | 2009-07-23 18:22:58 +0200 | [diff] [blame] | 75 | .B 020 |
Juan Cespedes | 85f7d76 | 2009-05-14 13:53:59 +0200 | [diff] [blame] | 76 | DEBUG_PROCESS. Shows every action |
| 77 | .B ltrace |
Juan Cespedes | c5c744a | 2009-07-23 18:22:58 +0200 | [diff] [blame] | 78 | carries upon a traced process |
| 79 | .TP |
| 80 | .B 040 |
| 81 | DEBUG_FUNCTION. Shows every entry to internal functions |
Juan Cespedes | cd8976d | 2009-05-14 13:47:58 +0200 | [diff] [blame] | 82 | .RE |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 83 | .TP |
Petr Machata | 4e1c066 | 2012-04-24 00:50:07 +0200 | [diff] [blame] | 84 | .I \-e filter |
| 85 | A qualifying expression which modifies which library calls to trace. |
| 86 | The format of the filter expression is described in the section |
| 87 | \fBFILTER EXPRESSIONS\fR. If more than one \-e option appears on the |
| 88 | command line, the library calls that match any of them are traced. If |
| 89 | no \-e is given, \fB@MAIN\fR is assumed as a default. |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 90 | .TP |
Juan Cespedes | d65efa3 | 2003-02-03 00:22:30 +0100 | [diff] [blame] | 91 | .I \-f |
| 92 | Trace child processes as they are created by |
Juan Cespedes | c4e53a9 | 2009-05-06 20:36:42 +0200 | [diff] [blame] | 93 | currently traced processes as a result of the fork(2) |
Juan Cespedes | d65efa3 | 2003-02-03 00:22:30 +0100 | [diff] [blame] | 94 | or clone(2) system calls. |
Juan Cespedes | c4e53a9 | 2009-05-06 20:36:42 +0200 | [diff] [blame] | 95 | The new process is attached immediately. |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 96 | .TP |
Steve Fink | 58c73a7 | 2006-07-17 23:18:35 +0200 | [diff] [blame] | 97 | .I \-F |
| 98 | Load an alternate config file. Normally, /etc/ltrace.conf and |
| 99 | ~/.ltrace.conf will be read (the latter only if it exists). |
| 100 | Use this option to load the given file or files instead of |
| 101 | those two default files. |
| 102 | .TP |
Juan Cespedes | ac3db29 | 1998-04-25 14:31:58 +0200 | [diff] [blame] | 103 | .I \-h, \-\-help |
| 104 | Show a summary of the options to ltrace and exit. |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 105 | .TP |
Juan Cespedes | d65efa3 | 2003-02-03 00:22:30 +0100 | [diff] [blame] | 106 | .I \-i |
| 107 | Print the instruction pointer at the time of the library call. |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 108 | .TP |
Petr Machata | 51e74ac | 2012-09-27 23:43:25 +0200 | [diff] [blame] | 109 | .I \-l, \-\-library library_pattern |
Petr Machata | 9265da4 | 2012-11-02 02:56:08 +0100 | [diff] [blame^] | 110 | Display only calls to functions implemented by libraries that match |
Petr Machata | 51e74ac | 2012-09-27 23:43:25 +0200 | [diff] [blame] | 111 | .I library_pattern. |
| 112 | Multiple library patters can be specified with several instances of |
| 113 | this option. Syntax of library_pattern is described in section |
| 114 | \fBFILTER EXPRESSIONS\fR. |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 115 | .TP |
Juan Cespedes | d65efa3 | 2003-02-03 00:22:30 +0100 | [diff] [blame] | 116 | .I \-L |
Petr Machata | 51e74ac | 2012-09-27 23:43:25 +0200 | [diff] [blame] | 117 | When no -e option is given, don't assume the default action of |
| 118 | \fB@MAIN\fR. |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 119 | .TP |
Juan Cespedes | d65efa3 | 2003-02-03 00:22:30 +0100 | [diff] [blame] | 120 | .I \-n, \-\-indent nr |
| 121 | Indent trace output by |
| 122 | .I nr |
| 123 | number of spaces for each new nested call. Using this option makes |
| 124 | the program flow visualization easy to follow. |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 125 | .TP |
Juan Cespedes | d65efa3 | 2003-02-03 00:22:30 +0100 | [diff] [blame] | 126 | .I \-o, \-\-output filename |
| 127 | Write the trace output to the file |
| 128 | .I filename |
| 129 | rather than to stderr. |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 130 | .TP |
Juan Cespedes | d65efa3 | 2003-02-03 00:22:30 +0100 | [diff] [blame] | 131 | .I \-p pid |
| 132 | Attach to the process with the process ID |
| 133 | .I pid |
| 134 | and begin tracing. |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 135 | .TP |
Juan Cespedes | d65efa3 | 2003-02-03 00:22:30 +0100 | [diff] [blame] | 136 | .I \-r |
| 137 | Print a relative timestamp with each line of the trace. |
| 138 | This records the time difference between the beginning of |
| 139 | successive lines. |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 140 | .TP |
Juan Cespedes | d65efa3 | 2003-02-03 00:22:30 +0100 | [diff] [blame] | 141 | .I \-s strsize |
| 142 | Specify the maximum string size to print (the default is 32). |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 143 | .TP |
Juan Cespedes | d65efa3 | 2003-02-03 00:22:30 +0100 | [diff] [blame] | 144 | .I \-S |
| 145 | Display system calls as well as library calls |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 146 | .TP |
Juan Cespedes | d65efa3 | 2003-02-03 00:22:30 +0100 | [diff] [blame] | 147 | .I \-t |
| 148 | Prefix each line of the trace with the time of day. |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 149 | .TP |
Juan Cespedes | d65efa3 | 2003-02-03 00:22:30 +0100 | [diff] [blame] | 150 | .I \-tt |
| 151 | If given twice, the time printed will include the microseconds. |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 152 | .TP |
Juan Cespedes | d65efa3 | 2003-02-03 00:22:30 +0100 | [diff] [blame] | 153 | .I \-ttt |
| 154 | If given thrice, the time printed will include the microseconds and |
| 155 | the leading portion will be printed as the number of seconds since the |
| 156 | epoch. |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 157 | .TP |
Juan Cespedes | d65efa3 | 2003-02-03 00:22:30 +0100 | [diff] [blame] | 158 | .I \-T |
| 159 | Show the time spent inside each call. This records the time difference |
| 160 | between the beginning and the end of each call. |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 161 | .TP |
Juan Cespedes | d65efa3 | 2003-02-03 00:22:30 +0100 | [diff] [blame] | 162 | .I \-u username |
| 163 | Run command with the userid, groupid and supplementary groups of |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 164 | .IR username . |
Juan Cespedes | d65efa3 | 2003-02-03 00:22:30 +0100 | [diff] [blame] | 165 | This option is only useful when running as root and enables the |
| 166 | correct execution of setuid and/or setgid binaries. |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 167 | .TP |
Joe Damato | 535e738 | 2010-11-08 15:47:43 -0800 | [diff] [blame] | 168 | .I \-w, --where NR |
| 169 | Show backtrace of NR stack frames for each traced function. This option enabled |
| 170 | only if libunwind support was enabled at compile time. |
| 171 | .TP |
Petr Machata | 4e1c066 | 2012-04-24 00:50:07 +0200 | [diff] [blame] | 172 | .I \-x filter |
| 173 | A qualifying expression which modifies which symbol table entry points |
| 174 | to trace. The format of the filter expression is described in the |
| 175 | section \fBFILTER EXPRESSIONS\fR. If more than one \-x option appears |
| 176 | on the command line, the symbols that match any of them are traced. |
| 177 | No entry points are traced if no \-x is given. |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 178 | .TP |
Juan Cespedes | ac3db29 | 1998-04-25 14:31:58 +0200 | [diff] [blame] | 179 | .I \-V, \-\-version |
| 180 | Show the version number of ltrace and exit. |
Juan Cespedes | 07461b6 | 1997-08-22 15:29:10 +0200 | [diff] [blame] | 181 | |
Petr Machata | 4e1c066 | 2012-04-24 00:50:07 +0200 | [diff] [blame] | 182 | .SH FILTER EXPRESSIONS |
| 183 | |
| 184 | Filter expression is a chain of glob- or regexp-based rules that are |
| 185 | used to pick symbols for tracing from libraries that the process uses. |
| 186 | Most of it is intuitive, so as an example, the following would trace |
| 187 | calls to malloc and free, except those done by libc: |
| 188 | |
| 189 | -e malloc+free-@libc.so* |
| 190 | |
| 191 | This reads: trace malloc and free, but don't trace anything that comes |
| 192 | from libc. Semi-formally, the syntax of the above example looks |
| 193 | approximately like this: |
| 194 | |
Petr Machata | 964a680 | 2012-06-29 14:27:08 +0200 | [diff] [blame] | 195 | {[+-][\fIsymbol_pattern\fR][@\fIlibrary_pattern\fR]} |
Petr Machata | 4e1c066 | 2012-04-24 00:50:07 +0200 | [diff] [blame] | 196 | |
Petr Machata | 964a680 | 2012-06-29 14:27:08 +0200 | [diff] [blame] | 197 | \fISymbol_pattern\fR is used to match symbol names, |
| 198 | \fIlibrary_pattern\fR to match library SONAMEs. Both are implicitly |
| 199 | globs, but can be regular expressions as well (see below). The glob |
| 200 | syntax supports meta-characters \fB*\fR and \fB?\fR and character |
| 201 | classes, similarly to what basic bash globs support. \fB^\fR and |
| 202 | \fB$\fR are recognized to mean, respectively, start and end of given |
| 203 | name. |
Petr Machata | 4e1c066 | 2012-04-24 00:50:07 +0200 | [diff] [blame] | 204 | |
Petr Machata | 964a680 | 2012-06-29 14:27:08 +0200 | [diff] [blame] | 205 | Both \fIsymbol_pattern\fR and \fIlibrary_pattern\fR have to match the |
| 206 | whole name. If you want to match only part of the name, surround it |
Petr Machata | 4e1c066 | 2012-04-24 00:50:07 +0200 | [diff] [blame] | 207 | with one or two *'s as appropriate. The exception is if the pattern |
| 208 | is not mentioned at all, in which case it's as if the corresponding |
| 209 | pattern were \fB*\fR. (So \fBmalloc\fR is really \fBmalloc@*\fR and |
| 210 | \fB@libc.*\fR is really \fB*@libc.*\fR.) |
| 211 | |
| 212 | In libraries that don't have an explicit SONAME, basename is taken for |
| 213 | SONAME. That holds for main binary as well: \fB/bin/echo\fR has an |
| 214 | implicit SONAME of \fBecho\fR. In addition to that, special library |
| 215 | pattern \fBMAIN\fR always matches symbols in the main binary and never |
| 216 | a library with actual SONAME \fBMAIN\fR (use e.g. \fB^MAIN\fR or |
| 217 | \fB[M]AIN\fR for that). |
| 218 | |
| 219 | If the symbol or library pattern is surrounded in slashes (/like |
| 220 | this/), then it is considered a regular expression instead. As a |
| 221 | shorthand, instead of writing \fB/x/@/y/\fR, you can write |
| 222 | \fB/x@y/\fR. |
| 223 | |
| 224 | If the library pattern starts with a slash, it is not a SONAME |
| 225 | expression, but a path expression, and is matched against the library |
| 226 | path name. |
| 227 | |
| 228 | The first rule may lack a sign, in which case \fB+\fR is assumed. If, |
| 229 | on the other hand, the first rule has a \fB-\fR sign, it is as if |
| 230 | there was another rule \fB@*\fR in front of it. |
| 231 | |
| 232 | The above rules are used to construct the set of traced symbols. Each |
| 233 | candidate symbol is passed through the chain of above rules. |
Petr Machata | 964a680 | 2012-06-29 14:27:08 +0200 | [diff] [blame] | 234 | Initially, the symbol is \fIunmarked\fR. If it matches a \fB+\fR |
| 235 | rule, it becomes \fImarked\fR, if it matches a \fB-\fR rule, it |
| 236 | becomes \fIunmarked\fR again. If, after applying all rules, the |
| 237 | symbol is \fImarked\fR, it will be traced. |
Petr Machata | 4e1c066 | 2012-04-24 00:50:07 +0200 | [diff] [blame] | 238 | |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 239 | .SH BUGS |
Juan Cespedes | ac3db29 | 1998-04-25 14:31:58 +0200 | [diff] [blame] | 240 | It has most of the bugs stated in |
| 241 | .BR strace(1) . |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 242 | .LP |
| 243 | Manual page and documentation are not very up-to-date. |
| 244 | .LP |
| 245 | Option -f sometimes fails to trace some children. |
| 246 | .LP |
Juan Cespedes | 5c3fe06 | 2004-06-14 18:08:37 +0200 | [diff] [blame] | 247 | It only works on Linux and in a small subset of architectures. |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 248 | .LP |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 249 | .PP |
Steve Fink | 7ab8df1 | 2006-08-07 04:06:16 +0200 | [diff] [blame] | 250 | If you would like to report a bug, send a message to the mailing list |
| 251 | (ltrace-devel@lists.alioth.debian.org), or use the |
Ian Wienand | bf312a1 | 2006-02-20 23:28:35 +0100 | [diff] [blame] | 252 | .BR reportbug(1) |
Juan Cespedes | ac3db29 | 1998-04-25 14:31:58 +0200 | [diff] [blame] | 253 | program if you are under the Debian GNU/Linux distribution. |
Juan Cespedes | 07461b6 | 1997-08-22 15:29:10 +0200 | [diff] [blame] | 254 | |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 255 | .SH FILES |
| 256 | .TP |
Juan Cespedes | 5e01f65 | 1998-03-08 22:31:44 +0100 | [diff] [blame] | 257 | .I /etc/ltrace.conf |
| 258 | System configuration file |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 259 | .TP |
Juan Cespedes | 5e01f65 | 1998-03-08 22:31:44 +0100 | [diff] [blame] | 260 | .I ~/.ltrace.conf |
| 261 | Personal config file, overrides |
| 262 | .I /etc/ltrace.conf |
| 263 | |
Ian Wienand | 9a2ad35 | 2006-02-20 22:44:45 +0100 | [diff] [blame] | 264 | .SH AUTHOR |
Juan Cespedes | 64e793b | 1997-09-11 23:22:36 +0200 | [diff] [blame] | 265 | Juan Cespedes <cespedes@debian.org> |
Petr Machata | 4e1c066 | 2012-04-24 00:50:07 +0200 | [diff] [blame] | 266 | .br |
| 267 | Petr Machata <pmachata@redhat.com> |
Juan Cespedes | 07461b6 | 1997-08-22 15:29:10 +0200 | [diff] [blame] | 268 | |
| 269 | .SH "SEE ALSO" |
Petr Machata | 11f23ba | 2012-10-25 03:39:59 +0200 | [diff] [blame] | 270 | .BR ltrace.conf(5), |
Juan Cespedes | 07461b6 | 1997-08-22 15:29:10 +0200 | [diff] [blame] | 271 | .BR strace(1) , |
| 272 | .BR ptrace(2) |
| 273 | |