2017-11-29 23:52:02 +03:00
. \" Copyright (c) 2017 The strace developers.
. \" All rights reserved.
. \"
2018-12-10 03:00:00 +03:00
. \" SPDX-License-Identifier: LGPL-2.1-or-later
2017-11-29 23:52:02 +03:00
. \"
. \" 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
2018-02-24 02:18:56 +03:00
mailing list at <strace\- devel@lists.strace.io>.
2017-11-29 23:52:02 +03:00
. \"
.SH "SEE ALSO"
.BR strace (1)