mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-26 20:03:54 -06:00
trace: introduce a formal group name for trace events
The declarations in the generated-tracers.h file are assuming there's only ever going to be one instance of this header, as they are not namespaced. When we have one header per event group, if a single source file needs to include multiple sets of trace events, the symbols will all clash. This change thus introduces a '--group NAME' arg to the 'tracetool' program. This will cause all the symbols in the generated header files to be given a unique namespace. If no group is given, the group name 'common' is used, which is suitable for the current usage where there is only one global trace-events file used for code generation. Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Daniel P. Berrange <berrange@redhat.com> Reviewed-by: Lluís Vilanova <vilanova@ac.upc.edu> Message-id: 1475588159-30598-21-git-send-email-berrange@redhat.com Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
0bc6484d58
commit
80dd5c4918
21 changed files with 73 additions and 55 deletions
|
@ -15,6 +15,8 @@ __email__ = "stefanha@linux.vnet.ibm.com"
|
|||
|
||||
import sys
|
||||
import getopt
|
||||
import os.path
|
||||
import re
|
||||
|
||||
from tracetool import error_write, out
|
||||
import tracetool.backend
|
||||
|
@ -60,6 +62,15 @@ 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"/|-", "_", dirname)
|
||||
|
||||
def main(args):
|
||||
global _SCRIPT
|
||||
|
@ -134,8 +145,10 @@ def main(args):
|
|||
with open(args[0], "r") as fh:
|
||||
events = tracetool.read_events(fh)
|
||||
|
||||
group = make_group_name(args[0])
|
||||
|
||||
try:
|
||||
tracetool.generate(events, arg_format, arg_backends,
|
||||
tracetool.generate(events, group, arg_format, arg_backends,
|
||||
binary=binary, probe_prefix=probe_prefix)
|
||||
except tracetool.TracetoolError as e:
|
||||
error_opt(str(e))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue