diff options
author | fche <fche> | 2005-10-18 12:40:59 +0000 |
---|---|---|
committer | fche <fche> | 2005-10-18 12:40:59 +0000 |
commit | 2508b230c643707830bfc491c1606fe6d81bc92d (patch) | |
tree | 59c86e3620b8036482109801cd3b4009dbfdf3b8 /tapsets.cxx | |
parent | 1eb8c9ca274c82762a357cf1e7641b113bceb16c (diff) | |
download | systemtap-steved-2508b230c643707830bfc491c1606fe6d81bc92d.tar.gz systemtap-steved-2508b230c643707830bfc491c1606fe6d81bc92d.tar.xz systemtap-steved-2508b230c643707830bfc491c1606fe6d81bc92d.zip |
2005-10-18 Frank Ch. Eigler <fche@elastic.org>
PR 1482 cont'd.
* translator.cxx (emit_module_init): Set aside a variable for
detailed probe point id.
* tapsets.cxx (emit_registrations): Use it.
(add_probe_point): Correct synthesized probe-point typo.
Diffstat (limited to 'tapsets.cxx')
-rw-r--r-- | tapsets.cxx | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/tapsets.cxx b/tapsets.cxx index c174db2f..5fcef4aa 100644 --- a/tapsets.cxx +++ b/tapsets.cxx @@ -2330,7 +2330,7 @@ dwarf_derived_probe::add_probe_point(string const & funcname, string fn_or_stmt; if (q.has_function_str || q.has_function_num) fn_or_stmt = "function"; - if (q.has_inline_str || q.has_inline_num) + else if (q.has_inline_str || q.has_inline_num) fn_or_stmt = "inline"; else fn_or_stmt = "statement"; @@ -2552,7 +2552,10 @@ dwarf_derived_probe::emit_registrations (translator_output* o, o->newline() << "rc = register_kprobe (&(" << probe_name << "));"; } - o->newline() << "if (unlikely (rc)) break;"; + o->newline() << "if (unlikely (rc)) {"; + o->newline(1) << "probe_point = " << string_array_name (probenum) << "[i];"; + o->newline() << "break;"; + o->newline(-1) << "}"; o->newline(-1) << "}"; // if one failed, must roll back completed registations for this probe |