From 5b808275f3bbe8cc95bb9301f4d5a41331d0e0e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Llu=C3=ADs=20Vilanova?= Date: Tue, 27 May 2014 15:02:14 +0200 Subject: trace: Multi-backend tracing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds support to compile QEMU with multiple tracing backends at the same time. For example, you can compile QEMU with: $ ./configure --enable-trace-backends=ftrace,dtrace Where 'ftrace' can be handy for having an in-flight record of events, and 'dtrace' can be later used to extract more information from the system. This patch allows having both available without recompiling QEMU. Signed-off-by: LluĂ­s Vilanova Signed-off-by: Stefan Hajnoczi --- scripts/tracetool/__init__.py | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) (limited to 'scripts/tracetool/__init__.py') diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py index eccf5524f3..e8e8edcc4c 100644 --- a/scripts/tracetool/__init__.py +++ b/scripts/tracetool/__init__.py @@ -233,9 +233,9 @@ def try_import(mod_name, attr_name=None, attr_default=None): return False, None -def generate(fevents, format, backend, +def generate(fevents, format, backends, binary=None, probe_prefix=None): - """Generate the output for the given (format, backend) pair. + """Generate the output for the given (format, backends) pair. Parameters ---------- @@ -243,8 +243,8 @@ def generate(fevents, format, backend, Event description file. format : str Output format name. - backend : str - Output backend name. + backends : list + Output backend names. binary : str or None See tracetool.backend.dtrace.BINARY. probe_prefix : str or None @@ -258,15 +258,13 @@ def generate(fevents, format, backend, raise TracetoolError("format not set") if not tracetool.format.exists(format): raise TracetoolError("unknown format: %s" % format) - format = format.replace("-", "_") - - backend = str(backend) - if len(backend) is 0: - raise TracetoolError("backend not set") - if not tracetool.backend.exists(backend): - raise TracetoolError("unknown backend: %s" % backend) - backend = backend.replace("-", "_") - backend = tracetool.backend.Wrapper(backend, format) + + if len(backends) is 0: + raise TracetoolError("no backends specified") + for backend in backends: + if not tracetool.backend.exists(backend): + raise TracetoolError("unknown backend: %s" % backend) + backend = tracetool.backend.Wrapper(backends, format) import tracetool.backend.dtrace tracetool.backend.dtrace.BINARY = binary -- cgit v1.2.3