From ab655cf8ec35ab47a38d95182dfe07a0e380681a Mon Sep 17 00:00:00 2001 From: dsmith Date: Mon, 19 Mar 2007 21:14:21 +0000 Subject: 2007-03-19 David Smith PR 4146 (partial fix) * tapsets.cxx (all_session_groups): Added note about stating that begin probes should be registered (actually run) first and end probes should be unregistered (run) last. * translate.cxx (c_unparser::emit_module_exit): Process probe group vector in reverse order so that probe groups will get unregistered in the reverse order that they were registered. --- tapsets.cxx | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'tapsets.cxx') diff --git a/tapsets.cxx b/tapsets.cxx index 54388f5b..eb66f2bc 100644 --- a/tapsets.cxx +++ b/tapsets.cxx @@ -5419,6 +5419,13 @@ all_session_groups(systemtap_session& s) { vector g; #define DOONE(x) if (s. x##_derived_probes) g.push_back (s. x##_derived_probes) + + // Note that order *is* important here. We want to make sure we + // register (actually run) begin probes before any other probe type + // is run. Similarly, when unregistering probes, we want to + // unregister (actually run) end probes after every other probe type + // has be unregistered. To do the latter, + // c_unparser::emit_module_exit() will run this list backwards. DOONE(be); DOONE(dwarf); DOONE(timer); -- cgit