STRACE-LOG-MERGE(1) General Commands Manual STRACE-LOG-MERGE(1)

# [NAME](#NAME)

strace-log-merge - merge strace -ff -tt output

# [SYNOPSIS](#SYNOPSIS)

`strace-log-merge` *STRACE\_LOG*

`strace-log-merge` **--help**

# [DESCRIPTION](#DESCRIPTION)

**strace-log-merge** merges log files produced by the **strace -ff -tt\[t]** command. It prepends the Process ID (PID) to each line and sorts the combined output chronologically by timestamp.

# [OPTIONS](#OPTIONS)

[**--help**](#help)

Show program usage and exit.

[*STRACE\_LOG*](#STRACE_LOG)

Specifies the file name prefix for the log files produced by a **strace -ff -tt\[t]** command. The utility will read all files matching the STRACE\_LOG.* pattern.

# [EXIT STATUS](#EXIT_STATUS)

**0**

Success

[**Non-zero**](#Non-zero)

An error occurred. This can be due to a missing argument (in which case usage information is printed) or a failure during the processing of the *STRACE\_LOG*.* files.

# [USAGE EXAMPLE](#USAGE_EXAMPLE)

```
$ 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 +++
```

# [NOTES](#NOTES)

*strace-log-merge* may fail to correctly sort logs that were generated with **-tt** and span across midnight. This is because the standard **-tt** timestamp lacks date information, which is required for proper sorting. Using the **-ttt** option with **strace** solves this problem, as its timestamp format includes the date.

# [BUGS](#BUGS)

*strace-log-merge* does not validate the format of the input files. It assumes that all files matching the *STRACE\_LOG*.* glob pattern are correctly formatted log files from a single **strace** session.

# [HISTORY](#HISTORY)

The initial version of *strace-log-merge* was written by Denys Vlasenko in 2012.

# [REPORTING BUGS](#REPORTING_BUGS)

Problems with **strace-log-merge** should be reported to the **strace** mailing list at &lt;strace-devel@lists.strace.io&gt;.

# [SEE ALSO](#SEE_ALSO)

[**strace**(1)](/man/os/strace/strace.1)

2026-08-18 strace 7.2

---

Document: strace-log-merge(1) from strace 7.2-r2 (Chainguard OS)
Source: https://github.com/strace/strace.git
