summaryrefslogtreecommitdiffstats
path: root/dtrace
diff options
context:
space:
mode:
authorMark Wielaard <mjw@redhat.com>2009-02-20 14:56:38 +0100
committerMark Wielaard <mjw@redhat.com>2009-02-20 14:56:38 +0100
commit02615365a92ca2570c1f96abc8a97674aa2ccae1 (patch)
treeebedfd91a0f6d299b39e84295e091e12c0767dc8 /dtrace
parentc3bad3042df505a3470f1e20b09822a9df1d4761 (diff)
parentadc67597f327cd43d58b1d0cb740dab14a75a058 (diff)
downloadsystemtap-steved-02615365a92ca2570c1f96abc8a97674aa2ccae1.tar.gz
systemtap-steved-02615365a92ca2570c1f96abc8a97674aa2ccae1.tar.xz
systemtap-steved-02615365a92ca2570c1f96abc8a97674aa2ccae1.zip
Merge branch 'master' into pr6866
Conflicts: ChangeLog: Removed runtime/ChangeLog: Removed runtime/sym.c: Merged runtime/task_finder.c: Merged tapset/ChangeLog: Removed testsuite/ChangeLog: Removed
Diffstat (limited to 'dtrace')
-rwxr-xr-xdtrace27
1 files changed, 15 insertions, 12 deletions
diff --git a/dtrace b/dtrace
index 1eb53bf9..d6d5ce21 100755
--- a/dtrace
+++ b/dtrace
@@ -13,7 +13,8 @@
# later version.
import os,posix,sys
-from subprocess import *
+from subprocess import call
+from tempfile import mkstemp
class provider:
arglist = dict()
@@ -21,7 +22,7 @@ class provider:
have_provider = False
self.f = open(provider)
self.h = open(header,mode='w')
- self.h.write("// Generated by /usr/bin/dtrace\n")
+ self.h.write("// Generated by the Systemtap dtrace wrapper\n")
self.h.write("\n#include <sys/sdt.h>\n\n")
in_comment = False
while (True):
@@ -59,7 +60,7 @@ class provider:
if (len(new_args) > 0):
self.arglist[this_probe] = ('%s arg%d' % (new_args, c))
if (len(new_args) == 0):
- self.h.write ('#define %s STAP_PROBE(provider,%s)\n' % (this_probe_canon, this_probe))
+ self.h.write ('#define %s() STAP_PROBE(provider,%s)\n' % (this_probe_canon, this_probe))
elif (c == 0):
self.h.write ('#define %s(arg1) STAP_PROBE%d(provider,%s,arg1)\n' % (this_probe_canon, c+1, this_probe))
elif (c == 1):
@@ -117,29 +118,31 @@ while (i < len (sys.argv)):
elif (sys.argv[i] == "-G"):
build_source = True
i += 1
-# print build_header == False and build_source == False
if (build_header == False and build_source == False):
usage()
sys.exit(1)
if (filename == ""):
if (s_filename != ""):
- filename = s_filename.replace(".d","")
+ (filename,ext) = os.path.splitext(s_filename)
+ filename = os.path.basename(filename)
+ if (build_header):
+ filename = filename + ".h"
+ elif (build_source):
+ filename = filename + ".o"
else:
usage
sys.exit(1)
if (build_header):
providers = provider()
- providers.open(s_filename, filename + ".h")
+ providers.open(s_filename, filename)
elif (build_source):
- fn = "/tmp/" + os.path.basename(s_filename).replace(".d", ".c")
+ (basename,ext) = os.path.splitext(s_filename)
+ basename = os.path.basename(basename)
+ (d,fn) = mkstemp(suffix=".c",prefix=basename)
f = open(fn,mode='w')
f.write("static __dtrace () {}\n")
f.close()
- call("gcc -fPIC -c " + fn + " -o " + filename + ".o", shell=True)
- f.close()
+ call(["gcc", "-fPIC", "-c", fn, "-o", filename], shell=False)
os.remove(fn)
-
-
-