.\" Automatically generated by Pandoc 2.9.2.1 .\" .TH "UFTRACE-DUMP" "1" "Sep, 2018" "Uftrace User Manuals" "" .hy .SH NAME .PP uftrace-dump - Print raw tracing data in the data files .SH SYNOPSIS .PP uftrace dump [\f[I]options\f[R]] .SH DESCRIPTION .PP This command shows raw tracing data recorded in the data file. The dump format can be configured by additional options such as \[en]chrome, \[en]flame-graph, or \[en]graphviz. .SH DUMP OPTIONS .TP --chrome Show JSON style output as used by the Google Chrome tracing facility. .TP --flame-graph Show FlameGraph style output viewable by modern web browsers (after processing by the FlameGraph tool). .TP --graphviz Show DOT style output used by the graphviz toolkit. .TP --debug Show hex dump of data as well .TP --sample-time=\f[I]TIME\f[R] Apply sampling time when generating output for \[en]flame-graph. By default it uses the number of calls for each function. When this option is used it simulates sampling by counting execution time at the given unit. So functions which ran less than the sampling time will be removed from the output but functions longer than the time will be shown as larger. .SH COMMON OPTIONS .TP -F \f[I]FUNC\f[R], --filter=\f[I]FUNC\f[R] Set filter to trace selected functions and their children functions. This option can be used more than once. See \f[C]uftrace-replay\f[R](1) for an explanation of filters. .TP -N \f[I]FUNC\f[R], --notrace=\f[I]FUNC\f[R] Set filter not to trace selected functions and their children functions. This option can be used more than once. See \f[C]uftrace-replay\f[R](1) for an explanation of filters. .TP -C \f[I]FUNC\f[R], --caller-filter=\f[I]FUNC\f[R] Set filter to trace callers of selected functions only. This option can be used more than once. See \f[C]uftrace-replay\f[R](1) for an explanation of filters. .TP -T \f[I]TRG\f[R], --trigger=\f[I]TRG\f[R] Set trigger on selected functions. This option can be used more than once. See \f[C]uftrace-replay\f[R](1) for an explanation of triggers. .TP -D \f[I]DEPTH\f[R], --depth \f[I]DEPTH\f[R] Set trace limit in nesting level. .TP -t \f[I]TIME\f[R], --time-filter=\f[I]TIME\f[R] 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. .TP --no-libcall Do not show library calls. .TP --no-event Do not show any events. Implies \f[C]--no-sched\f[R]. .TP --no-sched Do not show schedule events. .TP --match=\f[I]TYPE\f[R] Use pattern match using TYPE. Possible types are \f[C]regex\f[R] and \f[C]glob\f[R]. Default is \f[C]regex\f[R]. .SH COMMON ANALYSIS OPTIONS .TP -H \f[I]FUNC\f[R], --hide=\f[I]FUNC\f[R] Set filter not to trace selected functions. It doesn\[cq]t affect their subtrees, but hides only the given functions. This option can be used more than once. See \f[C]uftrace-replay\f[R](1) for an explanation of filters. .TP --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. .TP --kernel-only Dump kernel functions only without user functions. .TP --event-full Show all (user) events outside of user functions. This option is only meaningful when used with --chrome, --flame-graph or --graphviz options. .TP --tid=\f[I]TID\f[R][,\f[I]TID\f[R],\&...] Only print functions called by the given tasks. To see the list of tasks in the data file, you can use \f[C]uftrace report --task\f[R] or \f[C]uftrace info\f[R]. This option can also be used more than once. .TP --demangle=\f[I]TYPE\f[R] Use demangled C++ symbol names for filters, triggers, arguments and/or return values. Possible values are \[lq]full\[rq], \[lq]simple\[rq] and \[lq]no\[rq]. Default is \[lq]simple\[rq] which ignores function arguments and template parameters. .TP -r \f[I]RANGE\f[R], --time-range=\f[I]RANGE\f[R] Only show functions executed within the time RANGE. The RANGE can be \[ti] (separated by \[lq]\[ti]\[rq]) and one of and can be omitted. The and are timestamp or elapsed time if they have postfix, for example `100us'. The timestamp or elapsed time can be shown with \f[C]-f time\f[R] or \f[C]-f elapsed\f[R] option respectively in \f[C]uftrace replay\f[R](1). .SH EXAMPLE .PP This command dumps data like below: .IP .nf \f[C] $ 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 {\[dq]traceEvents\[dq]:[ {\[dq]ts\[dq]:105430415353,\[dq]ph\[dq]:\[dq]B\[dq],\[dq]pid\[dq]:23043,\[dq]name\[dq]:\[dq]main\[dq]}, {\[dq]ts\[dq]:105430415353,\[dq]ph\[dq]:\[dq]B\[dq],\[dq]pid\[dq]:23043,\[dq]name\[dq]:\[dq]a\[dq]}, {\[dq]ts\[dq]:105430415354,\[dq]ph\[dq]:\[dq]B\[dq],\[dq]pid\[dq]:23043,\[dq]name\[dq]:\[dq]b\[dq]}, {\[dq]ts\[dq]:105430415354,\[dq]ph\[dq]:\[dq]B\[dq],\[dq]pid\[dq]:23043,\[dq]name\[dq]:\[dq]c\[dq]}, {\[dq]ts\[dq]:105430415354,\[dq]ph\[dq]:\[dq]B\[dq],\[dq]pid\[dq]:23043,\[dq]name\[dq]:\[dq]getpid\[dq]}, {\[dq]ts\[dq]:105430415355,\[dq]ph\[dq]:\[dq]E\[dq],\[dq]pid\[dq]:23043,\[dq]name\[dq]:\[dq]getpid\[dq]}, {\[dq]ts\[dq]:105430415355,\[dq]ph\[dq]:\[dq]E\[dq],\[dq]pid\[dq]:23043,\[dq]name\[dq]:\[dq]c\[dq]}, {\[dq]ts\[dq]:105430415355,\[dq]ph\[dq]:\[dq]E\[dq],\[dq]pid\[dq]:23043,\[dq]name\[dq]:\[dq]b\[dq]}, {\[dq]ts\[dq]:105430415355,\[dq]ph\[dq]:\[dq]E\[dq],\[dq]pid\[dq]:23043,\[dq]name\[dq]:\[dq]a\[dq]}, {\[dq]ts\[dq]:105430415356,\[dq]ph\[dq]:\[dq]E\[dq],\[dq]pid\[dq]:23043,\[dq]name\[dq]:\[dq]main\[dq]} ], \[dq]metadata\[dq]: { \[dq]command_line\[dq]:\[dq]uftrace record abc \[dq], \[dq]recorded_time\[dq]:\[dq]Tue May 24 19:44:54 2016\[dq] } } $ uftrace dump --flame-graph --sample-time 1us main 1 main;a;b;c 1 $ uftrace dump --graphviz \[rs]# command_line \[dq]uftrace record tests/t-abc\[dq] digraph \[dq]/home/m/git/uftrace/tests/t-abc\[dq] { \[rs]# Attributes splines=ortho; concentrate=true; node [shape=\[dq]rect\[dq],fontsize=\[dq]7\[dq],style=\[dq]filled\[dq]]; edge [fontsize=\[dq]7\[dq]]; \[rs]# Elements main[xlabel = \[dq]Calls : 1\[dq]] main->a[xlabel = \[dq]Calls : 1\[dq]] a->b[xlabel = \[dq]Calls : 1\[dq]] b->c[xlabel = \[dq]Calls : 1\[dq]] c->getpid[xlabel = \[dq]Calls : 1\[dq]] } \f[R] .fi .SH SEE ALSO .PP \f[C]uftrace\f[R](1), \f[C]uftrace-record\f[R](1), \f[C]uftrace-replay\f[R](1) .SH AUTHORS Namhyung Kim .