strace/strace-log-merge.1.in
Dmitry V. Levin b93d52fe3d Change the license of strace to LGPL-2.1-or-later
strace is now provided under the terms of the GNU Lesser General
Public License version 2.1 or later, see COPYING for more details.

strace test suite is now provided under the terms of the GNU General
Public License version 2 or later, see tests/COPYING for more details.
2018-12-10 00:00:00 +00:00

127 lines
3.1 KiB
Groff

.\" Copyright (c) 2017 The strace developers.
.\" All rights reserved.
.\"
.\" SPDX-License-Identifier: LGPL-2.1-or-later
.\"
.\" Required option.
.de OR
. ie \\n(.$-1 \
. RI "\fB\\$1\fP" "\ \\$2"
. el \
. BR "\\$1"
..
.\"
.TH STRACE-LOG-MERGE 1 "@MANPAGE_DATE@" "strace @VERSION@"
.\"
.SH NAME
strace-log-merge \- merge strace \-ff \-tt output
.\"
.SH SYNOPSIS
.SY strace\-log\-merge
.IR STRACE_LOG
.YS
.SY strace\-log\-merge
.OR \-\-help
.YS
.\"
.SH DESCRIPTION
.B strace\-log\-merge
merges the output of
.B strace \-ff \-tt[t]
command, prepending PID to each line and sorting the result using time stamp as
a key.
.\"
.SH OPTIONS
.\"
.TP
.B \-\-help
Show program usage and exit.
.TP
.I STRACE_LOG
Output file name prefix of files produced by a
.B strace -ff -tt[t]
command.
.SH EXIT STATUS
.TP
.B 0
Success
.TP
.B Non-zero
Error occurred: either no argument specified (in that case a usage is printed),
or something went wrong during the processing of
.IR STRACE_LOG ".*"
files.
.\"
.SH USAGE EXAMPLE
.sp
.nf
.ft CW
$ strace -o sleepy -ff -tt -e trace=execve,nanosleep \\
sh -c 'sleep 0.1 & sleep 0.2 & sleep 0.3'
$ strace-log-merge sleepy | fold -w 72 -s
13475 21:13:52.040837 execve("/bin/sh", ["sh", "-c", "sleep 0.1 & sleep
0.2 & sleep 0."...], 0x7ffde54b2450 /* 33 vars */) = 0
13478 21:13:52.044050 execve("/bin/sleep", ["sleep", "0.3"],
0x5631be4f87a8 /* 33 vars */) = 0
13476 21:13:52.044269 execve("/bin/sleep", ["sleep", "0.1"],
0x5631be4f87a8 /* 33 vars */) = 0
13477 21:13:52.044389 execve("/bin/sleep", ["sleep", "0.2"],
0x5631be4f87a8 /* 33 vars */) = 0
13478 21:13:52.046207 nanosleep({tv_sec=0, tv_nsec=300000000}, NULL) = 0
13476 21:13:52.046303 nanosleep({tv_sec=0, tv_nsec=100000000}, NULL) = 0
13477 21:13:52.046318 nanosleep({tv_sec=0, tv_nsec=200000000}, NULL) = 0
13476 21:13:52.146852 +++ exited with 0 +++
13475 21:13:52.146942 --- SIGCHLD {si_signo=SIGCHLD,
si_code=CLD_EXITED, si_pid=13476, si_uid=1000, si_status=0, si_utime=0,
si_stime=0} ---
13477 21:13:52.247782 +++ exited with 0 +++
13475 21:13:52.247885 --- SIGCHLD {si_signo=SIGCHLD,
si_code=CLD_EXITED, si_pid=13477, si_uid=1000, si_status=0, si_utime=0,
si_stime=0} ---
13478 21:13:52.347680 +++ exited with 0 +++
13475 21:13:52.347786 --- SIGCHLD {si_signo=SIGCHLD,
si_code=CLD_EXITED, si_pid=13478, si_uid=1000, si_status=0, si_utime=0,
si_stime=0} ---
13475 21:13:52.348069 +++ exited with 0 +++
.ft R
.fi
.sp
.\"
.SH NOTES
.I strace-log-merge
does not work well with
.B strace
logs generated by
.B strace -tt
invocation that pass midnight, as those lack the information required
for the proper sorting.
Employing the
.B -ttt
option in the respective
.B strace
invocation should solve the problem.
.\"
.SH BUGS
.I strace-log-merge
does not perform any checks whether the files specified are in the correct
format and implies that only files from a single
.I strace
session match
.IR STRACE_LOG ".*"
glob pattern.
.\"
.SH HISTORY
The initial version of
.I strace-log-merge
was written by Denys Vlasenko in 2012.
.\"
.SH REPORTING BUGS
Problems with
.B strace-log-merge
should be reported to the
.B strace
mailing list at <strace\-devel@lists.strace.io>.
.\"
.SH "SEE ALSO"
.BR strace (1)