blob: 8ab24091d4240fbc70f6b92591972506991ac5ac [file] [log] [blame]
Elliott Hughesbb0c2d52014-01-07 17:34:14 -08001#!/bin/sh
2
3show_usage()
4{
5 cat <<__EOF__
6Usage: ${0##*/} STRACE_LOG
7
8Finds all STRACE_LOG.PID files, adds PID prefix to every line,
9then combines and sorts them, and prints result to standard output.
10
11It is assumed that STRACE_LOGs were produced by strace with -tt[t]
12option which prints timestamps (otherwise sorting won't do any good).
13__EOF__
14}
15
16if [ $# -ne 1 ]; then
17 show_usage >&2
18 exit 1
19elif [ "$1" = '--help' ]; then
20 show_usage
21 exit 0
22fi
23
24logfile=$1
25
26for file in "$logfile".*; do
27 [ -f "$file" ] || continue
28 suffix=${file#"$logfile".}
29 [ "$suffix" -gt 0 ] 2> /dev/null ||
30 continue
31 pid=$(printf "%-5s" $suffix)
32 # Some strace logs have last line which is not '\n' terminated,
33 # so add extra newline to every file.
34 # grep -v '^$' removes empty lines which may result.
35 sed "s/^/$pid /" < "$file"
36 echo
37done \
38| sort -s -k2,2 | grep -v '^$'
39
40rc=$?
41[ $rc -eq 1 ] &&
42 echo >&2 "${0##*/}: $logfile: strace output not found"
43exit $rc