| .\" Copyright (c) 2017 The strace developers. |
| .\" All rights reserved. |
| .\" |
| .\" Redistribution and use in source and binary forms, with or without |
| .\" modification, are permitted provided that the following conditions |
| .\" are met: |
| .\" 1. Redistributions of source code must retain the above copyright |
| .\" notice, this list of conditions and the following disclaimer. |
| .\" 2. Redistributions in binary form must reproduce the above copyright |
| .\" notice, this list of conditions and the following disclaimer in the |
| .\" documentation and/or other materials provided with the distribution. |
| .\" 3. The name of the author may not be used to endorse or promote products |
| .\" derived from this software without specific prior written permission. |
| .\" |
| .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR |
| .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
| .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
| .\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, |
| .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
| .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
| .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| .\" |
| .\" 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) |