UFTRACE-DUMP(1)

NAME
uftrace-dump - Print raw tracing data in the data files

SYNOPSIS
uftrace dump [options]

DESCRIPTION
This command shows raw tracing data recorded in the data file. The dump format can be configured by additional options such as –chrome, –flame-graph, or –graphviz.

DUMP OPTIONS

--chrome
    Show JSON style output as used by the Google Chrome tracing facility.

--flame-graph
    Show FlameGraph style output viewable by modern web browsers (after processing by the FlameGraph tool).

--graphviz
    Show DOT style output used by the graphviz toolkit.

--mermaid
    Show graph as mermaid flowchart diagram. It can be rendered in the browser.

--debug
    Show hex dump of data as well

--sample-time=TIME
    Apply sampling time when generating output for –flame-graph. By default, it tries to find a period from 1 usec to 1 sec where it keeps the total number of samples under 1 million (in a single-threaded program). You can override the sampling time with this option explicitly. Note that functions which ran less than the sampling time will be removed from the output and functions ran longer than the time will be shown as larger.

--no-args
    Do not show function arguments and return value.

COMMON OPTIONS

-F FUNC, --filter=FUNC
    Set filter to trace selected functions and their children functions. This option can be used more than once. See uftrace-replay(1) for an explanation of filters.

-N FUNC, --notrace=FUNC
    Set filter not to trace selected functions and their children functions. This option can be used more than once. See uftrace-replay(1) for an explanation of filters.

-C FUNC, --caller-filter=FUNC
    Set filter to trace callers of selected functions only. This option can be used more than once. See uftrace-replay(1) for an explanation of filters.

-T TRG, --trigger=TRG
    Set trigger on selected functions. This option can be used more than once. See uftrace-replay(1) for an explanation of triggers.

-D DEPTH, --depth=DEPTH
    Set trace limit in nesting level.

-t TIME, --time-filter=TIME
    Do not show functions which run under the time threshold. If some functions explicitly have the `trace' trigger applied, those are always traced regardless of execution time.

-Z SIZE, --size-filter=SIZE
    Do not show functions smaller than SIZE bytes.

-L LOCATION, --loc-filter=LOCATION
    Set filter to trace selected source locations. This option can be used more than once.

--no-libcall
    Do not show library calls.

--no-event
    Do not show any events. Implies --no-sched.

--no-sched
    Do not show schedule events.

--match=TYPE
    Use pattern match using TYPE. Possible types are regex and glob. Default is regex.

--with-syms=DIR
    Read symbol data from the .sym files in DIR directory instead of the binary. This can be useful to deal with stripped binaries. The file name of the main binary should be the same when saved and used.

COMMON ANALYSIS OPTIONS

-H FUNC, --hide=FUNC
    Set filter not to trace selected functions. It doesn’t affect their subtrees, but hides only the given functions. This option can be used more than once. See uftrace-replay(1) for an explanation of filters.

--kernel-full
    Show all kernel functions called outside of user functions. This option is only meaningful when used with --chrome, --flame-graph or --graphviz options.

--kernel-only
    Dump kernel functions only without user functions.

--event-full
    Show all (user) events outside of user functions. This option is only meaningful when used with --chrome, --flame-graph or --graphviz options.

--tid=TID[,TID,...]
    Only print functions called by the given tasks. To see the list of tasks in the data file, you can use uftrace report --task or uftrace info. This option can also be used more than once.

--demangle=TYPE
    Use demangled C++ symbol names for filters, triggers, arguments and/or return values. Possible values are “full”, “simple” and “no”. Default is “simple” which ignores function arguments and template parameters.

-r RANGE, --time-range=RANGE
    Only show functions executed within the time RANGE. The RANGE can be <start>~<stop> (separated by “~”) and one of <start> and <stop> can be omitted. The <start> and <stop> are timestamp or elapsed time if they have <time_unit> postfix, for example `100us'. The timestamp or elapsed time can be shown with -f time or -f elapsed option respectively in uftrace replay(1).

EXAMPLE
This command dumps data like below:

        $ uftrace record abc

        $ uftrace dump
        uftrace file header: magic         = 4674726163652100
        uftrace file header: version       = 4
        uftrace file header: header size   = 40
        uftrace file header: endian        = 1 (little)
        uftrace file header: class         = 2 (64 bit)
        uftrace file header: features      = 0x63 (PLTHOOK | TASK_SESSION | SYM_REL_ADDR | MAX_STACK)
        uftrace file header: info          = 0x3ff

        reading 23043.dat
        105430.415350255  23043: [entry] __monstartup(4004d0) depth: 0
        105430.415351178  23043: [exit ] __monstartup(4004d0) depth: 0
        105430.415351932  23043: [entry] __cxa_atexit(4004f0) depth: 0
        105430.415352687  23043: [exit ] __cxa_atexit(4004f0) depth: 0
        105430.415353833  23043: [entry] main(400512) depth: 0
        105430.415353992  23043: [entry] a(4006b2) depth: 1
        105430.415354112  23043: [entry] b(4006a0) depth: 2
        105430.415354230  23043: [entry] c(400686) depth: 3
        105430.415354425  23043: [entry] getpid(4004b0) depth: 4
        105430.415355035  23043: [exit ] getpid(4004b0) depth: 4
        105430.415355549  23043: [exit ] c(400686) depth: 3
        105430.415355761  23043: [exit ] b(4006a0) depth: 2
        105430.415355943  23043: [exit ] a(4006b2) depth: 1
        105430.415356109  23043: [exit ] main(400512) depth: 0

        $ uftrace dump --chrome -F main
        {"traceEvents":[
        {"ts":105430415353,"ph":"B","pid":23043,"name":"main"},
        {"ts":105430415353,"ph":"B","pid":23043,"name":"a"},
        {"ts":105430415354,"ph":"B","pid":23043,"name":"b"},
        {"ts":105430415354,"ph":"B","pid":23043,"name":"c"},
        {"ts":105430415354,"ph":"B","pid":23043,"name":"getpid"},
        {"ts":105430415355,"ph":"E","pid":23043,"name":"getpid"},
        {"ts":105430415355,"ph":"E","pid":23043,"name":"c"},
        {"ts":105430415355,"ph":"E","pid":23043,"name":"b"},
        {"ts":105430415355,"ph":"E","pid":23043,"name":"a"},
        {"ts":105430415356,"ph":"E","pid":23043,"name":"main"}
        ], "metadata": {
        "command_line":"uftrace record abc ",
        "recorded_time":"Tue May 24 19:44:54 2016"
        } }

        $ uftrace dump --flame-graph --sample-time 1us
        main 1
        main;a;b;c 1

        $ uftrace dump --graphviz
        \# command_line "uftrace record tests/t-abc"
        digraph "/home/m/git/uftrace/tests/t-abc" {
                \# Attributes
                splines=ortho;
                concentrate=true;
                node [shape="rect",fontsize="7",style="filled"];
                edge [fontsize="7"];
                \# Elements
                main[xlabel = "Calls : 1"]
                main->a[xlabel = "Calls : 1"]
                a->b[xlabel = "Calls : 1"]
                b->c[xlabel = "Calls : 1"]
                c->getpid[xlabel = "Calls : 1"]
        }

SEE ALSO
uftrace(1), uftrace-record(1), uftrace-replay(1)

AUTHORS
Namhyung Kim namhyung@gmail.com