+2008-09-10 Josh Stone <joshua.i.stone@intel.com>
+
+ * main.cxx (printscript): Ensure no variables are printed in probe lists
+ unless -L was specified.
+
2008-09-10 Frank Ch. Eigler <fche@elastic.org>
PR6876: translator speedup for many $vars
if (seen.find (pp) == seen.end())
{
o << pp;
- // This list will be empty unless s.unoptimized = true -- i.e., -L mode
- for (unsigned j=0; j<p->locals.size(); j++)
- {
- o << " ";
- vardecl* v = p->locals[j];
- v->printsig (o);
- }
- o << endl;
+ // Print the locals for -L mode only
+ if (s.unoptimized)
+ for (unsigned j=0; j<p->locals.size(); j++)
+ {
+ o << " ";
+ vardecl* v = p->locals[j];
+ v->printsig (o);
+ }
+ o << endl;
seen.insert (pp);
}
}
+2008-09-10 Josh Stone <joshua.i.stone@intel.com>
+
+ * systemtap.base/probe_list.exp: New test for correct probe listing.
+
2008-09-09 Frank Ch. Eigler <fche@elastic.org>
* systemtap.base/uprobes.*: Tweak regexps for read-only src tree
--- /dev/null
+# This test ensures that "-l" lists only include probe names, and not any of
+# the local variables. There was a bug that "-l" would print variables that
+# couldn't be optimized away, due to an incorrect assumption in the
+# implementation.
+
+# NB: This is a bit abusively formed. Currently -l internally writes "probe"
+# and "{}" around its argument. For this test we want to introduce a variable
+# that can't be optimized away. The trailing comment mark lets the auto "{}"
+# get ignored.
+spawn stap -l "begin { if (a) next }#"
+
+expect {
+ # the output should not include anything else, like the 'a' local.
+ -re "^begin\r\n$" {
+ pass "probe list is correct"
+ return
+ }
+}
+fail "probe list is incorrect"