trace: extract stap_escape() function for reuse

SystemTap reserved words sometimes conflict with QEMU variable names.
We escape them to prevent conflicts.

Move escaping into its own function so the next patch can reuse it.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
Stefan Hajnoczi 2014-06-22 21:46:04 +08:00
parent 2d591ce2ae
commit a76ccf3c1c

View File

@ -27,6 +27,13 @@ RESERVED_WORDS = (
)
def stap_escape(identifier):
# Append underscore to reserved keywords
if identifier in RESERVED_WORDS:
return identifier + '_'
return identifier
def generate(events, backend):
events = [e for e in events
if "disable" not in e.properties]
@ -45,9 +52,7 @@ def generate(events, backend):
i = 1
if len(e.args) > 0:
for name in e.args.names():
# Append underscore to reserved keywords
if name in RESERVED_WORDS:
name += '_'
name = stap_escape(name)
out(' %s = $arg%d;' % (name, i))
i += 1