From 7584f16292bc4557b3f7e3f9dcbc5dbe07bab562 Mon Sep 17 00:00:00 2001 From: Rajan Arora Date: Mon, 27 Oct 2008 15:15:53 -0400 Subject: RHBZ 468139 avoid display of tapset globals --- ChangeLog | 5 +++-- elaborate.cxx | 13 +++++++++++-- testsuite/ChangeLog | 5 ++--- testsuite/systemtap.base/global_end.exp | 11 ++++++++++- testsuite/systemtap.base/global_end2.stp | 8 ++++++++ 5 files changed, 34 insertions(+), 8 deletions(-) create mode 100644 testsuite/systemtap.base/global_end2.stp diff --git a/ChangeLog b/ChangeLog index ab118e16..fc7018b8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,7 @@ -2008-10-25 Rajan Arora +2008-10-27 Rajan Arora - * 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 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 +2008-10-27 Rajan Arora - * 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 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() +} -- cgit