X-Git-Url: https://repo.jachan.dev/qemu.git/blobdiff_plain/5ff06787d4921579192e1becfedb9b1954f9bc0d..9bb73502321d46f4d320fa17aa38201445783fc4:/scripts/tracetool.py diff --git a/scripts/tracetool.py b/scripts/tracetool.py index fe9c9e904b..3beaa66bd8 100755 --- a/scripts/tracetool.py +++ b/scripts/tracetool.py @@ -15,8 +15,6 @@ __email__ = "stefanha@linux.vnet.ibm.com" import sys import getopt -import os.path -import re from tracetool import error_write, out import tracetool.backend @@ -49,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--).\ """ % { @@ -62,22 +61,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 +77,7 @@ def main(args): check_backends = False arg_backends = [] arg_format = "" + arg_group = None binary = None target_type = None target_name = None @@ -98,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 @@ -129,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") @@ -140,15 +135,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, arg)) 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))