diff options
author | Stan Cox <scox@redhat.com> | 2009-06-16 10:59:25 -0400 |
---|---|---|
committer | Stan Cox <scox@redhat.com> | 2009-06-16 10:59:25 -0400 |
commit | 611ab8263198e3e8c2640cb4a3e1eb65e2037f96 (patch) | |
tree | 4bc8c0f42a191c1a1807604c3dc63792c07d592f | |
parent | 8e02c67338ae99f487d736ad4a5f19b9065b1453 (diff) | |
download | systemtap-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.cxx | 8 |
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; |