958e1b
From 7c6cf82e285a657b38a2b2c85e26d975b7e91ae0 Mon Sep 17 00:00:00 2001
958e1b
From: Stefan Hajnoczi <stefanha@redhat.com>
958e1b
Date: Tue, 7 Oct 2014 14:06:54 +0200
958e1b
Subject: [PATCH 36/43] trace: extract stap_escape() function for reuse
958e1b
958e1b
Message-id: <1412690820-31016-6-git-send-email-stefanha@redhat.com>
958e1b
Patchwork-id: 61610
958e1b
O-Subject: [RHEL7.1 qemu-kvm PATCH 05/11] trace: extract stap_escape() function for reuse
958e1b
Bugzilla: 1088112
958e1b
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
958e1b
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
958e1b
RH-Acked-by: Paolo Bonzini <pbonzini@redhat.com>
958e1b
958e1b
SystemTap reserved words sometimes conflict with QEMU variable names.
958e1b
We escape them to prevent conflicts.
958e1b
958e1b
Move escaping into its own function so the next patch can reuse it.
958e1b
958e1b
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
958e1b
(cherry picked from commit a76ccf3c1cb06576af091c5ac8bc264515b1bb7f)
958e1b
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
958e1b
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
958e1b
958e1b
Conflicts:
958e1b
	scripts/tracetool/format/stap.py
958e1b
958e1b
The tracetool downstream code is missing the TCG instrumentation and
958e1b
multi-backend tracing, which involved a reorganization of the code.
958e1b
The upstream patch modified scripts/tracetool/format/stap.py but
958e1b
downstream the right file is scripts/tracetool/backend/dtrace.py.
958e1b
---
958e1b
 scripts/tracetool/backend/dtrace.py | 11 ++++++++---
958e1b
 1 file changed, 8 insertions(+), 3 deletions(-)
958e1b
958e1b
diff --git a/scripts/tracetool/backend/dtrace.py b/scripts/tracetool/backend/dtrace.py
958e1b
index e31bc79..614316f 100644
958e1b
--- a/scripts/tracetool/backend/dtrace.py
958e1b
+++ b/scripts/tracetool/backend/dtrace.py
958e1b
@@ -35,6 +35,13 @@ def _binary():
958e1b
     return BINARY
958e1b
 
958e1b
 
958e1b
+def stap_escape(identifier):
958e1b
+    # Append underscore to reserved keywords
958e1b
+    if identifier in RESERVED_WORDS:
958e1b
+        return identifier + '_'
958e1b
+    return identifier
958e1b
+
958e1b
+
958e1b
 def c(events):
958e1b
     pass
958e1b
 
958e1b
@@ -98,9 +105,7 @@ def stap(events):
958e1b
         i = 1
958e1b
         if len(e.args) > 0:
958e1b
             for name in e.args.names():
958e1b
-                # Append underscore to reserved keywords
958e1b
-                if name in RESERVED_WORDS:
958e1b
-                    name += '_'
958e1b
+                name = stap_escape(name)
958e1b
                 out('  %s = $arg%d;' % (name, i))
958e1b
                 i += 1
958e1b
 
958e1b
-- 
958e1b
1.8.3.1
958e1b