diff options
| author | Lluís Vilanova <vilanova@ac.upc.edu> | 2014-05-27 15:02:14 +0200 |
|---|---|---|
| committer | Stefan Hajnoczi <stefanha@redhat.com> | 2014-06-09 15:43:40 +0200 |
| commit | 5b808275f3bbe8cc95bb9301f4d5a41331d0e0e6 (patch) | |
| tree | d5611a010851864336448529088cd94a9afcf83a /scripts/tracetool/backend/__init__.py | |
| parent | 82432638ebeedda8a2e18838b6fbef4b14a94f31 (diff) | |
| download | focaccia-qemu-5b808275f3bbe8cc95bb9301f4d5a41331d0e0e6.tar.gz focaccia-qemu-5b808275f3bbe8cc95bb9301f4d5a41331d0e0e6.zip | |
trace: Multi-backend tracing
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 <vilanova@ac.upc.edu> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'scripts/tracetool/backend/__init__.py')
| -rw-r--r-- | scripts/tracetool/backend/__init__.py | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/scripts/tracetool/backend/__init__.py b/scripts/tracetool/backend/__init__.py index 5e36f0415d..5bfa1efc5c 100644 --- a/scripts/tracetool/backend/__init__.py +++ b/scripts/tracetool/backend/__init__.py @@ -99,17 +99,18 @@ def exists(name): class Wrapper: - def __init__(self, backend, format): - self._backend = backend.replace("-", "_") + def __init__(self, backends, format): + self._backends = [backend.replace("-", "_") for backend in backends] self._format = format.replace("-", "_") - assert exists(self._backend) + assert all(exists(backend) for backend in self._backends) assert tracetool.format.exists(self._format) def _run_function(self, name, *args, **kwargs): - func = tracetool.try_import("tracetool.backend." + self._backend, - name % self._format, None)[1] - if func is not None: - func(*args, **kwargs) + for backend in self._backends: + func = tracetool.try_import("tracetool.backend." + backend, + name % self._format, None)[1] + if func is not None: + func(*args, **kwargs) def generate_begin(self, events): self._run_function("generate_%s_begin", events) |