summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStan Cox <scox@redhat.com>2009-06-16 10:59:25 -0400
committerStan Cox <scox@redhat.com>2009-06-16 10:59:25 -0400
commit611ab8263198e3e8c2640cb4a3e1eb65e2037f96 (patch)
tree4bc8c0f42a191c1a1807604c3dc63792c07d592f
parent8e02c67338ae99f487d736ad4a5f19b9065b1453 (diff)
downloadsystemtap-steved-611ab8263198e3e8c2640cb4a3e1eb65e2037f96.tar.gz
systemtap-steved-611ab8263198e3e8c2640cb4a3e1eb65e2037f96.tar.xz
systemtap-steved-611ab8263198e3e8c2640cb4a3e1eb65e2037f96.zip
Do not emit duplicate probes for kprobe/utrace cases.
* tapsets.cxx (dwarf_builder) Add probes_handled. (dwarf_builder::build): Use probes_handled to not emit duplicates.
-rw-r--r--tapsets.cxx8
1 files changed, 8 insertions, 0 deletions
diff --git a/tapsets.cxx b/tapsets.cxx
index 0da61d9e..5e9deb9b 100644
--- a/tapsets.cxx
+++ b/tapsets.cxx
@@ -658,6 +658,7 @@ struct dwarf_builder: public derived_probe_builder
literal_map_t const & parameters,
vector<derived_probe *> & finished_results);
+ set<string> probes_handled;
struct probe_table
{
public:
@@ -3480,6 +3481,13 @@ dwarf_builder::build(systemtap_session & sess,
{
do
{
+ set<string>::iterator pb;
+ pb = probes_handled.find(probe_table.mark_name);
+ if (pb == probes_handled.end())
+ probes_handled.insert (probe_table.mark_name);
+ else
+ return;
+
probe *new_base = new probe;
*new_base = *base;