aboutsummaryrefslogtreecommitdiff
path: root/scripts/tracetool.py
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2017-02-02 16:08:28 +0000
committerPeter Maydell <peter.maydell@linaro.org>2017-02-02 16:08:28 +0000
commit4e9f5244e1945b2852b9ddcd7f023a7d19c9ecd7 (patch)
tree857fc18ea95112a807196ff0af7b9202109aba2c /scripts/tracetool.py
parent0b17d809b08e0315430d2e2923dbe4e967ef4f63 (diff)
parent7f4076c1bb16d0d6f81a085ecc9c9d0b9da74c7d (diff)
downloadqemu-4e9f5244e1945b2852b9ddcd7f023a7d19c9ecd7.zip
qemu-4e9f5244e1945b2852b9ddcd7f023a7d19c9ecd7.tar.gz
qemu-4e9f5244e1945b2852b9ddcd7f023a7d19c9ecd7.tar.bz2
Merge remote-tracking branch 'remotes/stefanha/tags/tracing-pull-request' into staging
# gpg: Signature made Wed 01 Feb 2017 13:44:32 GMT # gpg: using RSA key 0x9CA4ABB381AB73C8 # gpg: Good signature from "Stefan Hajnoczi <stefanha@redhat.com>" # gpg: aka "Stefan Hajnoczi <stefanha@gmail.com>" # Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35 775A 9CA4 ABB3 81AB 73C8 * remotes/stefanha/tags/tracing-pull-request: trace: clean up trace-events files qapi: add missing trace_visit_type_enum() call trace: improve error reporting when parsing simpletrace header trace: update docs to reflect new code generation approach trace: switch to modular code generation for sub-directories trace: move setting of group name into Makefiles trace: move hw/i386/xen events to correct subdir trace: move hw/xen events to correct subdir trace: move hw/block/dataplane events to correct subdir make: move top level dir to end of include search path # Conflicts: # Makefile Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'scripts/tracetool.py')
-rwxr-xr-xscripts/tracetool.py31
1 files changed, 14 insertions, 17 deletions
diff --git a/scripts/tracetool.py b/scripts/tracetool.py
index c9e4737..c55a215 100755
--- a/scripts/tracetool.py
+++ b/scripts/tracetool.py
@@ -49,6 +49,7 @@ Options:
--binary <path> Full path to QEMU binary.
--target-type <type> QEMU emulator target type ('system' or 'user').
--target-name <name> QEMU emulator target name.
+ --group <name> Name of the event group
--probe-prefix <prefix> Prefix for dtrace probe names
(default: qemu-<target-type>-<target-name>).\
""" % {
@@ -62,22 +63,12 @@ Options:
else:
sys.exit(1)
-def make_group_name(filename):
- dirname = os.path.realpath(os.path.dirname(filename))
- basedir = os.path.join(os.path.dirname(__file__), os.pardir)
- basedir = os.path.realpath(os.path.abspath(basedir))
- dirname = dirname[len(basedir) + 1:]
-
- if dirname == "":
- return "common"
- return "_" + re.sub(r"[^A-Za-z0-9]", "_", dirname)
-
def main(args):
global _SCRIPT
_SCRIPT = args[0]
long_opts = ["backends=", "format=", "help", "list-backends",
- "check-backends"]
+ "check-backends", "group="]
long_opts += ["binary=", "target-type=", "target-name=", "probe-prefix="]
try:
@@ -88,6 +79,7 @@ def main(args):
check_backends = False
arg_backends = []
arg_format = ""
+ arg_group = None
binary = None
target_type = None
target_name = None
@@ -98,6 +90,8 @@ def main(args):
elif opt == "--backends":
arg_backends = arg.split(",")
+ elif opt == "--group":
+ arg_group = arg
elif opt == "--format":
arg_format = arg
@@ -129,6 +123,9 @@ def main(args):
sys.exit(1)
sys.exit(0)
+ if arg_group is None:
+ error_opt("group name is required")
+
if arg_format == "stap":
if binary is None:
error_opt("--binary is required for SystemTAP tapset generator")
@@ -140,15 +137,15 @@ def main(args):
if probe_prefix is None:
probe_prefix = ".".join(["qemu", target_type, target_name])
- if len(args) != 1:
+ if len(args) < 1:
error_opt("missing trace-events filepath")
- with open(args[0], "r") as fh:
- events = tracetool.read_events(fh)
-
- group = make_group_name(args[0])
+ events = []
+ for arg in args:
+ with open(arg, "r") as fh:
+ events.extend(tracetool.read_events(fh))
try:
- tracetool.generate(events, group, arg_format, arg_backends,
+ tracetool.generate(events, arg_group, arg_format, arg_backends,
binary=binary, probe_prefix=probe_prefix)
except tracetool.TracetoolError as e:
error_opt(str(e))