blob: 290b0acda3f18ab8f51daca42568d00b6b783015 [file] [log] [blame]
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.
*-t* tracing_dir::
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.
*-k* kallsyms::
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.
*-o* output'::
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.
*-i* input::
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 current system.
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),
trace-cmd-list(1), trace-cmd-listen(1)
Written by Steven Rostedt, <>
Copyright \(C) 2010 Red Hat, Inc. Free use of this software is granted under
the terms of the GNU Public License (GPL).