summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRajan Arora <rarora@redhat.com>2008-10-27 15:15:53 -0400
committerRajan Arora <rarora@redhat.com>2008-10-27 15:15:53 -0400
commit7584f16292bc4557b3f7e3f9dcbc5dbe07bab562 (patch)
tree9da212b5cee991e9b42e40aa1553578e6aa53ca2
parent26343b47cdaff0420e6405295a0788b334be4eb6 (diff)
downloadsystemtap-steved-7584f16292bc4557b3f7e3f9dcbc5dbe07bab562.tar.gz
systemtap-steved-7584f16292bc4557b3f7e3f9dcbc5dbe07bab562.tar.xz
systemtap-steved-7584f16292bc4557b3f7e3f9dcbc5dbe07bab562.zip
RHBZ 468139 avoid display of tapset globals
-rw-r--r--ChangeLog5
-rw-r--r--elaborate.cxx13
-rw-r--r--testsuite/ChangeLog5
-rw-r--r--testsuite/systemtap.base/global_end.exp11
-rw-r--r--testsuite/systemtap.base/global_end2.stp8
5 files changed, 34 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index ab118e16..fc7018b8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,7 @@
-2008-10-25 Rajan Arora <rarora@redhat.com>
+2008-10-27 Rajan Arora <rarora@redhat.com>
- * elaborate.cxx (add_global_var_display): Added check for guru mode.
+ * elaborate.cxx (add_global_var_display): Added check for globals
+ from tapsets.
2008-10-24 Josh Stone <joshua.i.stone@intel.com>
diff --git a/elaborate.cxx b/elaborate.cxx
index 6e01e813..7cbac31f 100644
--- a/elaborate.cxx
+++ b/elaborate.cxx
@@ -1171,8 +1171,17 @@ void add_global_var_display (systemtap_session& s)
// declared only within tapsets. (RHBZ 468139), but rather
// only within the end-user script.
- // XXX: for example, search s.library_files[]->globals->name
- // for a matching with l->name, then "continue;" to skip it.
+ bool tapset_global = false;
+ for (size_t m=0; m < s.library_files.size(); m++)
+ {
+ for (size_t n=0; n < s.library_files[m]->globals.size(); n++)
+ {
+ if (l->name == s.library_files[m]->globals[n]->name)
+ {tapset_global = true; break;}
+ }
+ }
+ if (tapset_global)
+ continue;
print_format* pf = new print_format;
probe* p = new probe;
diff --git a/testsuite/ChangeLog b/testsuite/ChangeLog
index 6ded1137..829d605c 100644
--- a/testsuite/ChangeLog
+++ b/testsuite/ChangeLog
@@ -1,7 +1,6 @@
-2008-10-25 Rajan Arora <rarora@redhat.com>
+2008-10-27 Rajan Arora <rarora@redhat.com>
- * systemtap.base/global_end.exp: Spawn test again
- in guru mode.
+ * systemtap.base/global_end.exp: Spawn global_end2.stp
2008-10-20 Elliott Baron <ebaron@redhat.com>
diff --git a/testsuite/systemtap.base/global_end.exp b/testsuite/systemtap.base/global_end.exp
index b6b9fd30..9699b241 100644
--- a/testsuite/systemtap.base/global_end.exp
+++ b/testsuite/systemtap.base/global_end.exp
@@ -23,4 +23,13 @@ expect {
eof { }
}
wait
-if {$ok == 11} { pass "$test ($ok)" } { fail "$test ($ok)" }
+
+spawn stap $srcdir/$subdir/global_end2.stp
+# above should not do any tapset global variable display so
+# ok should only change by 1
+expect {
+ -timeout 180
+ -re {Avg time = 6} { incr ok; exp_continue }
+}
+
+if {$ok == 12} { pass "$test ($ok)" } { fail "$test ($ok)" }
diff --git a/testsuite/systemtap.base/global_end2.stp b/testsuite/systemtap.base/global_end2.stp
new file mode 100644
index 00000000..f170a8fe
--- /dev/null
+++ b/testsuite/systemtap.base/global_end2.stp
@@ -0,0 +1,8 @@
+probe begin {
+ qsq_start("test")
+ qs_wait("test")
+ qs_run("test")
+ qs_done("test")
+ log(sprintf("Avg time = %d", qsq_service_time("test", 1)))
+ exit()
+}