This series does three things: 1) add a "-trace [enable=]foo" option to enable one or more trace events, and a "-trace help" option to show the list of tracepoints (patches 4-5)
2) change the stderr tracing backend so that it prints to the -D log file, and enable it by default. "-trace file=..." is now a synonym of -D if the log backend is enabled (patches 7-8) 3) add a "-d trace:foo" option that is a synonym for "-trace foo"; this makes the new functionality more discoverable to people used to "-d", makes it available for user-mode emulation (which does not have -trace), and is somewhat nice if you want to enable both tracepoints and some other "-d" flag (patch 9). When globbing it is also less susceptible to unwanted shell expansion. For example, you can trace block device I/O and save the result to a file just by adding "-trace bdrv_aio_*,file=trace.txt", or correlate it to guest PCs with "-d exec,nochain,trace:bdrv_aio_*". Opinions? I would like to have this in 2.5 if there is agreement. Paolo Paolo Bonzini (9): trace: fix documentation trace: split trace_init_events out of trace_init_backends trace: split trace_init_file out of trace_init_backends trace: add "-trace enable=..." trace: add "-trace help" log: do not unnecessarily include qom/cpu.h trace: convert stderr backend to log trace: switch default backend to "log" log: add "-d trace:PATTERN" bsd-user/main.c | 1 + configure | 6 +- cpu-exec.c | 1 + exec.c | 1 + hw/acpi/cpu_hotplug.c | 1 + hw/timer/a9gtimer.c | 1 + include/exec/log.h | 60 ++++++++++++++++ include/qemu/log.h | 60 +--------------- linux-user/main.c | 1 + qemu-log.c | 19 ++++- qemu-options.hx | 22 ++++-- qom/cpu.c | 1 + scripts/tracetool/backend/{stderr.py => log.py} | 9 +-- target-alpha/translate.c | 1 + target-arm/translate.c | 1 + target-cris/translate.c | 1 + target-i386/seg_helper.c | 1 + target-i386/smm_helper.c | 1 + target-i386/translate.c | 1 + target-lm32/helper.c | 1 + target-lm32/translate.c | 1 + target-m68k/translate.c | 1 + target-microblaze/helper.c | 1 + target-microblaze/translate.c | 1 + target-mips/helper.c | 1 + target-mips/translate.c | 2 + target-moxie/translate.c | 1 + target-openrisc/translate.c | 1 + target-ppc/mmu-hash32.c | 1 + target-ppc/mmu-hash64.c | 1 + target-ppc/mmu_helper.c | 1 + target-ppc/translate.c | 1 + target-s390x/translate.c | 1 + target-sh4/helper.c | 1 + target-sh4/translate.c | 1 + target-sparc/int32_helper.c | 1 + target-sparc/int64_helper.c | 1 + target-sparc/translate.c | 1 + target-tilegx/translate.c | 1 + target-tricore/translate.c | 1 + target-unicore32/translate.c | 1 + target-xtensa/translate.c | 1 + tcg/tcg.c | 1 + trace/control.c | 95 ++++++++++++++++++------- trace/control.h | 42 ++++++++++- trace/simple.c | 6 +- trace/simple.h | 4 +- translate-all.c | 1 + vl.c | 30 +++++--- 49 files changed, 273 insertions(+), 119 deletions(-) create mode 100644 include/exec/log.h rename scripts/tracetool/backend/{stderr.py => log.py} (78%) -- 2.5.0