---
name: "strace2tsv"
section: "1"
platform: "linux"
package: "polgen"
version: "1.3-5"
release: "Debian 5.0 (Lenny)"
platforms: ["linux"]
url: "https://new.carta.tech/strace2tsv"
---

# strace2tsv(1)

Formats strace output as tab separated values

## NAME

strace2tsv - Formats strace output as tab separated values

## SYNOPSIS

**strace2tsv** \[**-o***OUTPUT*\] \[**-v**\] \[**-h**\] \[*INPUT*\]\

## DESCRIPTION

The **strace** program generates a line of text describing each system call made by processes it is tracing. The output is designed to be human readable, but it is not easily parsed by simple scripts.

To ease the task of analyzing strace output, the **strace2tsv** program formats the elements that make up a system call into tab separated values. In the output, the system call name, each argument, and the system call result make up a value in a line of output. An **strace** line of output that describes a signal is copied to the output unchanged.\

## OPTIONS

- **-v**

  display version information and exit

- **-h**

  display command line help

- **-o** *OUTPUT*

  send output to this file (default stdout)\

## UNFINISHED SYSTEM CALLS

Strace output that contains unfinished system calls will confuse the **strace2tsv** program.  If strace output is generated using the -f option, this  **awk** script joins the two parts of each unfinished system call:

```
awk '
  { if (sub(/ <unfinished ...>$/, "") > 0)
      table[$1] = $0
    else if ($2 != "---" && $2 != "+++" && $1 in table) {
      printf("%s", table[$1])
      delete table[$1]
      sub(/^.*resumed> /, "")
      print
    }
    else
      print
  }' | strace2tsv
```

## SEE ALSO

[**strace**(1)](/strace/1.md)\

## AUTHOR

This program, was written by John D. Ramsdell of The MITRE Corporation.
