summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrank Ch. Eigler <fche@elastic.org>2009-03-19 11:32:48 -0400
committerFrank Ch. Eigler <fche@elastic.org>2009-03-19 12:17:48 -0400
commit0afb7073fa08980ecf9a80018d18a5148c2f686e (patch)
treeee11d3ed9aedaf2ee5090931244b8c4e014bdee8
parentda049631393c37bad502ffac08a3805778c8d60d (diff)
downloadsystemtap-steved-0afb7073fa08980ecf9a80018d18a5148c2f686e.tar.gz
systemtap-steved-0afb7073fa08980ecf9a80018d18a5148c2f686e.tar.xz
systemtap-steved-0afb7073fa08980ecf9a80018d18a5148c2f686e.zip
rename process().itrace -> process().insn introduce process().insn.block
-rw-r--r--stapprobes.5.in13
-rw-r--r--tapsets.cxx13
-rw-r--r--testsuite/systemtap.base/itrace.exp7
3 files changed, 21 insertions, 12 deletions
diff --git a/stapprobes.5.in b/stapprobes.5.in
index 70d045c4..f4a872cb 100644
--- a/stapprobes.5.in
+++ b/stapprobes.5.in
@@ -407,8 +407,10 @@ process.syscall
process(PID).syscall.return
process("PATH").syscall.return
process.syscall.return
-process(PID).itrace
-process("PATH").itrace
+process(PID).insn
+process("PATH").insn
+process(PID).insn.block
+process("PATH").insn.block
process("PATH").mark("LABEL")
.ESAMPLE
.PP
@@ -443,8 +445,11 @@ in the
.BR $return
context variable.
A
-.B .itrace
-probe gets called for every single step of the process described by PID or PATH.
+.B .insn
+probe gets called for every single-stepped instruction of the process described by PID or PATH.
+A
+.B .insn.block
+probe gets called for every block-stepped instruction of the process described by PID or PATH.
A
.B .mark
probe gets called via a static probe which is defined in the
diff --git a/tapsets.cxx b/tapsets.cxx
index 42be4556..894a7447 100644
--- a/tapsets.cxx
+++ b/tapsets.cxx
@@ -6240,6 +6240,9 @@ task_finder_derived_probe_group::emit_module_exit (systemtap_session& s)
// ------------------------------------------------------------------------
+static string TOK_INSN("insn");
+static string TOK_BLOCK("block");
+
struct itrace_derived_probe: public derived_probe
{
bool has_path;
@@ -6314,7 +6317,7 @@ struct itrace_builder: public derived_probe_builder
// XXX: PR 6445 needs !has_path && !has_pid support
assert (has_path || has_pid);
- single_step = 1;
+ single_step = ! has_null_param (parameters, TOK_BLOCK);
// If we have a path, we need to validate it.
if (has_path)
@@ -10791,9 +10794,13 @@ register_standard_tapsets(systemtap_session & s)
->bind(new utrace_builder ());
// itrace user-space probes
- s.pattern_root->bind_str(TOK_PROCESS)->bind("itrace")
+ s.pattern_root->bind_str(TOK_PROCESS)->bind(TOK_INSN)
+ ->bind(new itrace_builder ());
+ s.pattern_root->bind_num(TOK_PROCESS)->bind(TOK_INSN)
+ ->bind(new itrace_builder ());
+ s.pattern_root->bind_str(TOK_PROCESS)->bind(TOK_INSN)->bind(TOK_BLOCK)
->bind(new itrace_builder ());
- s.pattern_root->bind_num(TOK_PROCESS)->bind("itrace")
+ s.pattern_root->bind_num(TOK_PROCESS)->bind(TOK_INSN)->bind(TOK_BLOCK)
->bind(new itrace_builder ());
// marker-based parts
diff --git a/testsuite/systemtap.base/itrace.exp b/testsuite/systemtap.base/itrace.exp
index f19af977..e215bfe7 100644
--- a/testsuite/systemtap.base/itrace.exp
+++ b/testsuite/systemtap.base/itrace.exp
@@ -1,8 +1,5 @@
# itrace test
-# temporarily disabled
-return
-
# Initialize variables
set utrace_support_found 0
@@ -11,7 +8,7 @@ set exepath "[pwd]/ls_[pid]"
set itrace1_script {
global instrs = 0
probe begin { printf("systemtap starting probe\n") }
- probe process("%s").itrace
+ probe process("%s").insn
{
instrs += 1
if (instrs == 5)
@@ -28,7 +25,7 @@ set itrace1_script_output "itraced = 5\r\n"
set itrace2_script {
global instrs = 0, itrace_on = 0, start_timer = 0
probe begin { start_timer = 1; printf("systemtap starting probe\n") }
- probe process("%s").itrace if (itrace_on)
+ probe process("%s").insn if (itrace_on)
{
instrs += 1
if (instrs == 5)