This patch defines the "disable" trace event state to always use the "nop" backend.
As a side-effect, all events are now enabled (without "disable") by default, as all backends (except "stderr") have programmatic support for dynamically (de)activating each trace event. In order to make this true, the "simple" backend now has a "-trace events=<file>" argument to let the user select which events must be enabled from the very beginning. NOTES: * Parsing of -trace arguments is not done in the OS-specific frontends. Signed-off-by: Lluís Vilanova <vilan...@ac.upc.edu> --- Changes in v8: * Fix some typos. * Fix linkage of QEMU_PROG target. * Provide default implementations of optional backend-specific routines in "trace/default.c". * Use a single routine for backend initialization ("trace_backend_init"). * A couple of minor documentation additions. * Rebase on qemu.git/master (f0fb8b7180fdcf536ea635a0720e1496110ecb3b). Changes in v7: * Fix cmdline documentation for the stderr backend. * Implement non-generic "trace/control.h" routines on each backend. Changes in v6: * Fix linkage when using the simple tracing backend. * Rename variables in configure (CONFIG_*_TRACE -> CONFIG_TRACE_*). * Prettify Makefile.obj using "trace-obj-$(CONFIG_TRACE*)" * Use 'trace-nested-y' pattern in Makefile.obj. * Add QEMU_WEAK to support "default implementations". * Provide generic trace cmdline configuration routines that backends can override through QEMU_WEAK. * Do the same for event state printing and setting. * Rebase on qemu.git/master (56a7a874e962e28522857fbf72eaefb1a07e2001). Changes in v5: * Fix a variable name typo in configure. * Rebase on qemu.git/master (c24a9c6ef946ec1b5b280061d4f7b579aaac6707). Changes in v4: * Fix a couple of minor errors. Changes in v3: * Rebase on qemu.git/master (642cfd4d31241c0fc65c520cb1e703659af66236). * Remove already-merged patches. * Remove code styling patches. * Generalize programmatic interface for trace event state control. Changes in v2: * Documentation fixes. * Seggregate whitespace/indentation changes. * Minor code beautifications. * Make all -trace suboptions explicit. * Fix minor comments from Stefan. * Minor trace-events format fixes. * Integrate changes from Fabien. * Rebase on qemu.git/master (c8f930c0eeb696d638f4d4bf654e955fa44ff40f). Lluís Vilanova (14): build: Fix linkage of QEMU_PROG build: [simple] Include qemu-timer-common.o in trace-obj-y trace: [configure] rename CONFIG_*_TRACE into CONFIG_TRACE_* trace: [make] replace 'ifeq' with values in CONFIG_TRACE_* trace: move backend-specific code into the trace/ directory trace: avoid conditional code compilation during option parsing trace: generalize the "property" concept in the trace-events file trace-state: separate trace event control and query routines from the simple backend trace-state: always compile support for controlling and querying trace event states trace-state: add "-trace events" argument to control initial state trace-state: always use the "nop" backend on events with the "disable" keyword trace-state: [simple] disable all trace points by default trace-state: [stderr] add support for dynamically enabling/disabling events trace: enable all events Makefile | 1 Makefile.objs | 22 +- Makefile.target | 8 - configure | 27 ++ docs/tracing.txt | 73 ++++-- hmp-commands.hx | 11 + monitor.c | 26 +- qemu-config.c | 7 - qemu-options.hx | 27 ++ scripts/tracetool | 116 +++++----- simpletrace.c | 355 ----------------------------- simpletrace.h | 48 ---- tests/test_path.c | 2 trace-events | 647 ++++++++++++++++++++++++++--------------------------- trace/control.c | 42 +++ trace/control.h | 41 +++ trace/default.c | 41 +++ trace/simple.c | 358 +++++++++++++++++++++++++++++ trace/simple.h | 38 +++ trace/stderr.c | 37 +++ trace/stderr.h | 11 + vl.c | 19 +- 22 files changed, 1093 insertions(+), 864 deletions(-) delete mode 100644 simpletrace.c delete mode 100644 simpletrace.h create mode 100644 trace/control.c create mode 100644 trace/control.h create mode 100644 trace/default.c create mode 100644 trace/simple.c create mode 100644 trace/simple.h create mode 100644 trace/stderr.c create mode 100644 trace/stderr.h