trace-cmd-restore - restore a failed trace record
trace-cmd restore [OPTIONS] [command] cpu-file [cpu-file ...]
The trace-cmd(1) restore command will restore a crashed trace-cmd-record(1) file. If for
some reason a trace-cmd record fails, it will leave a the per-cpu data files and not
create the final trace.dat file. The trace-cmd restore will append the files to create a
working trace.dat file that can be read with trace-cmd-report(1).
When trace-cmd record runs, it spawns off a process per CPU and writes to a per cpu file
usually called trace.dat.cpuX, where X represents the CPU number that it is tracing. If
the -o option was used in the trace-cmd record, then the CPU data files will have that
name instead of the trace.dat name. If a unexpected crash occurs before the tracing is
finished, then the per CPU files will still exist but there will not be any trace.dat file
to read from. trace-cmd restore will allow you to create a trace.dat file with the
existing data files.
Create a partial trace.dat file from the machine, to be used with a full trace-cmd
restore at another time. This option is useful for embedded devices. If a server
contains the cpu files of a crashed trace-cmd record (or trace-cmd listen), trace-cmd
restore can be executed on the embedded device with the -c option to get all the
stored information of that embedded device. Then the file created could be copied to
the server to run the trace-cmd restore there with the cpu files.
If *-o* is not specified, then the file created will be called
'trace-partial.dat'. This is because the file is not a full version
of something that trace-cmd-report(1) could use.
Used with -c, it overrides the location to read the events from. By default, tracing
information is read from the debugfs/tracing directory. -t will use that location
instead. This can be useful if the trace.dat file to create is from another machine.
Just tar -cvf events.tar debugfs/tracing and copy and untar that file locally, and use
that directory instead.
Used with -c, it overrides where to read the kallsyms file from. By default,
/proc/kallsyms is used. -k will override the file to read the kallsyms from. This can
be useful if the trace.dat file to create is from another machine. Just copy the
/proc/kallsyms file locally, and use -k to point to that file.
By default, trace-cmd restore will create a trace.dat file (or trace-partial.dat if -c
is specified). You can specify a different file to write to with the -o option.
By default, trace-cmd restore will read the information of the current system to
create the initial data stored in the trace.dat file. If the crash was on another
machine, then that machine should have the trace-cmd restore run with the -c option to
create the trace.dat partial file. Then that file can be copied to the current machine
where trace-cmd restore will use -i to load that file instead of reading from the
If a crash happened on another box, you could run:
$ trace-cmd restore -c -o box-partial.dat
Then on the server that has the cpu files:
$ trace-cmd restore -i box-partial.dat trace.dat.cpu0 trace.dat.cpu1
This would create a trace.dat file for the embedded box.
trace-cmd(1), trace-cmd-record(1), trace-cmd-report(1), trace-cmd-start(1),
trace-cmd-stop(1), trace-cmd-extract(1), trace-cmd-reset(1), trace-cmd-split(1),
Written by Steven Rostedt, <email@example.com>
Copyright (C) 2010 Red Hat, Inc. Free use of this software is granted under the terms of
the GNU Public License (GPL).