X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=scripts%2Ftracetool.py;h=31146242b77d6a6bf2a1c347a82eeec390b6e42a;hb=c5a5839856119a3644dcc0775a046ed0ee3081c3;hp=7b82959e84a832df61350ac25da648d91fa70952;hpb=f075c89f0a9cb31daf38892371d2822177505706;p=mirror_qemu.git diff --git a/scripts/tracetool.py b/scripts/tracetool.py index 7b82959e84..31146242b7 100755 --- a/scripts/tracetool.py +++ b/scripts/tracetool.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ @@ -10,7 +10,7 @@ __copyright__ = "Copyright 2012-2014, Lluís Vilanova " __license__ = "GPL version 2 or (at your option) any later version" __maintainer__ = "Stefan Hajnoczi" -__email__ = "stefanha@linux.vnet.ibm.com" +__email__ = "stefanha@redhat.com" import sys @@ -47,6 +47,7 @@ Options: --binary Full path to QEMU binary. --target-type QEMU emulator target type ('system' or 'user'). --target-name QEMU emulator target name. + --group Name of the event group --probe-prefix Prefix for dtrace probe names (default: qemu--).\ """ % { @@ -60,13 +61,12 @@ Options: else: sys.exit(1) - 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: @@ -77,6 +77,7 @@ def main(args): check_backends = False arg_backends = [] arg_format = "" + arg_group = None binary = None target_type = None target_name = None @@ -87,6 +88,8 @@ def main(args): elif opt == "--backends": arg_backends = arg.split(",") + elif opt == "--group": + arg_group = arg elif opt == "--format": arg_format = arg @@ -118,6 +121,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") @@ -129,8 +135,15 @@ def main(args): if probe_prefix is None: probe_prefix = ".".join(["qemu", target_type, target_name]) + if len(args) < 1: + error_opt("missing trace-events filepath") + events = [] + for arg in args: + with open(arg, "r") as fh: + events.extend(tracetool.read_events(fh, arg)) + try: - tracetool.generate(sys.stdin, 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))