trace: recommend "log" backend for getting started with tracing

The "simple" backend is actually more complicated to use than the "log"
backend. Update the quickstart documentation to feature the "log"
backend instead of the "simple" backend.

Suggested-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 20201216160923.722894-4-stefanha@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
Stefan Hajnoczi 2020-12-16 16:09:23 +00:00
parent e50caf4a5c
commit 7e46d5f317

View File

@ -11,22 +11,22 @@ for debugging, profiling, and observing execution.
Quickstart Quickstart
========== ==========
1. Build with the 'simple' trace backend:: Enable tracing of ``memory_region_ops_read`` and ``memory_region_ops_write``
events::
./configure --enable-trace-backends=simple $ qemu --trace "memory_region_ops_*" ...
make ...
719585@1608130130.441188:memory_region_ops_read cpu 0 mr 0x562fdfbb3820 addr 0x3cc value 0x67 size 1
719585@1608130130.441190:memory_region_ops_write cpu 0 mr 0x562fdfbd2f00 addr 0x3d4 value 0x70e size 2
2. Create a file with the events you want to trace:: This output comes from the "log" trace backend that is enabled by default when
``./configure --enable-trace-backends=BACKENDS`` was not explicitly specified.
echo memory_region_ops_read >/tmp/events More than one trace event pattern can be specified by providing a file
instead::
3. Run the virtual machine to produce a trace file:: $ echo "memory_region_ops_*" >/tmp/events
$ qemu --trace events=/tmp/events ...
qemu --trace events=/tmp/events ... # your normal QEMU invocation
4. Pretty-print the binary trace file::
./scripts/simpletrace.py trace-events-all trace-* # Override * with QEMU <pid>
Trace events Trace events
============ ============
@ -195,7 +195,7 @@ script.
The trace backends are chosen at configure time:: The trace backends are chosen at configure time::
./configure --enable-trace-backends=simple ./configure --enable-trace-backends=simple,dtrace
For a list of supported trace backends, try ./configure --help or see below. For a list of supported trace backends, try ./configure --help or see below.
If multiple backends are enabled, the trace is sent to them all. If multiple backends are enabled, the trace is sent to them all.
@ -227,10 +227,11 @@ uses DPRINTF().
Simpletrace Simpletrace
----------- -----------
The "simple" backend supports common use cases and comes as part of the QEMU The "simple" backend writes binary trace logs to a file from a thread, making
source tree. It may not be as powerful as platform-specific or third-party it lower overhead than the "log" backend. A Python API is available for writing
trace backends but it is portable. This is the recommended trace backend offline trace file analysis scripts. It may not be as powerful as
unless you have specific needs for more advanced backends. platform-specific or third-party trace backends but it is portable and has no
special library dependencies.
Monitor commands Monitor commands
~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~