An open API service indexing awesome lists of open source software.

https://github.com/luser/tracetree

A tool for capturing the execution of an entire process tree
https://github.com/luser/tracetree

process profiler rust

Last synced: over 1 year ago
JSON representation

A tool for capturing the execution of an entire process tree

Awesome Lists containing this project

README

          

[![Build Status](https://travis-ci.org/luser/tracetree.svg?branch=master)](https://travis-ci.org/luser/tracetree) [![crates.io](https://img.shields.io/crates/v/tracetree.svg)](https://crates.io/crates/tracetree) [![](https://docs.rs/tracetree/badge.svg)](https://docs.rs/tracetree)

tracetree
=========
Run a process, ptrace'ing it and all of its children, and print the entire process tree at the end.

Currently only Linux support is implemented.

Examples
========

Print a process tree in text format to stdout:

$ tracetree /bin/bash -c '/bin/sleep 1; /bin/sleep 1'
16665 bash -c /bin/sleep 1; /bin/sleep 1 [2.004s]
16666 sleep 1 [1.001s]
16667 sleep 1 [1.000s]

Print a process tree in JSON format to `output.json`:

$ tracetree -f json -o output.json /bin/bash -c '/bin/sleep 1; /bin/sleep 1'
$ python -mjson.tool output.json
{
"children": [
{
"children": [],
"cmdline": [
"/bin/sleep",
"1"
],
"ended": "2017-06-22T06:28:58.960384212-04:00",
"pid": 16727,
"started": "2017-06-22T06:28:57.959636824-04:00"
},
{
"children": [],
"cmdline": [
"/bin/sleep",
"1"
],
"ended": "2017-06-22T06:28:59.961990469-04:00",
"pid": 16728,
"started": "2017-06-22T06:28:58.960849779-04:00"
}
],
"cmdline": [
"/bin/bash",
"-c",
"/bin/sleep 1; /bin/sleep 1"
],
"ended": "2017-06-22T06:28:59.962407641-04:00",
"pid": 16726,
"started": "2017-06-22T06:28:57.958836370-04:00"
}

JSON output can be viewed with this [web visualizer](https://luser.github.io/tracetree/):
![The web viewer displaying the JSON output from the previous command](docs/webviewer.png)