summaryrefslogtreecommitdiffstats
path: root/buildrun.cxx
diff options
context:
space:
mode:
authorhunt <hunt>2005-09-06 17:40:12 +0000
committerhunt <hunt>2005-09-06 17:40:12 +0000
commit4c5ff1bb5bb35cb35e30c45e385043c5f8383cd0 (patch)
treea6696d16ece8e98844a6bac3ac550f0bd99f77c9 /buildrun.cxx
parentc0b3ea3235ced04f5f372c98c5ea321e2da22c59 (diff)
downloadsystemtap-steved-4c5ff1bb5bb35cb35e30c45e385043c5f8383cd0.tar.gz
systemtap-steved-4c5ff1bb5bb35cb35e30c45e385043c5f8383cd0.tar.xz
systemtap-steved-4c5ff1bb5bb35cb35e30c45e385043c5f8383cd0.zip
2005-09-06 Martin Hunt <hunt@redhat.com>
* tapset/context.stp: Add function target(). * stapfuncs.5.in (target): Document it. * elaborate.h (struct systemtap_session): Add cmd and target_pid to the struct. * main.cxx (usage): Add secriptions of "-c" and "-x" options. (main): Set s.cmd and s.target_pid. * buildrun.cxx (stringify): Copy this utility func here too. (run_pass): Add new options to set cmd and pid to the stpd command line.
Diffstat (limited to 'buildrun.cxx')
-rw-r--r--buildrun.cxx20
1 files changed, 18 insertions, 2 deletions
diff --git a/buildrun.cxx b/buildrun.cxx
index 867d0d0e..130f4a1b 100644
--- a/buildrun.cxx
+++ b/buildrun.cxx
@@ -92,6 +92,15 @@ compile_pass (systemtap_session& s)
}
+template <typename T>
+static string
+stringify(T t)
+{
+ ostringstream s;
+ s << t;
+ return s.str ();
+}
+
int
run_pass (systemtap_session& s)
@@ -114,8 +123,15 @@ run_pass (systemtap_session& s)
string stpd_cmd = string("/usr/bin/sudo ")
+ string(PKGLIBDIR) + "/stpd "
+ "-r " // disable relayfs
- + (s.verbose ? "" : "-q ")
- + s.tmpdir + "/" + s.module_name + ".ko";
+ + (s.verbose ? "" : "-q ");
+
+ if (s.cmd != "")
+ stpd_cmd += "-c \"" + s.cmd + "\" ";
+
+ if (s.target_pid)
+ stpd_cmd += "-t " + stringify(s.target_pid) + " ";
+
+ stpd_cmd += s.tmpdir + "/" + s.module_name + ".ko";
if (s.verbose) clog << "Running " << stpd_cmd << endl;
rc = system (stpd_cmd.c_str ());