diff options
author | hunt <hunt> | 2006-10-12 18:30:24 +0000 |
---|---|---|
committer | hunt <hunt> | 2006-10-12 18:30:24 +0000 |
commit | fcff848ec9185300024200b1d8323607f4434377 (patch) | |
tree | 8cb55c2b96e18aa6e2aef85bd8b61bd4d78ee15f /translate.cxx | |
parent | 5e3bb38362cf477a75c33bf9c3b31a03faa1bf17 (diff) | |
download | systemtap-steved-fcff848ec9185300024200b1d8323607f4434377.tar.gz systemtap-steved-fcff848ec9185300024200b1d8323607f4434377.tar.xz systemtap-steved-fcff848ec9185300024200b1d8323607f4434377.zip |
2006-10-12 Martin Hunt <hunt@redhat.com>
* translate.cxx (emit_common_header): Add a
kretprobe_instance pointer to struct context.
(emit_symbol_data): Include absolute symbols.
* tapsets.cxx (emit_common_header): Initialize
the kprobe instance pointer to 0;
(emit_probe_entries): Set kretprobe instance
pointer if appropriate.
Diffstat (limited to 'translate.cxx')
-rw-r--r-- | translate.cxx | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/translate.cxx b/translate.cxx index 2dd144db..2111eee1 100644 --- a/translate.cxx +++ b/translate.cxx @@ -823,6 +823,7 @@ c_unparser::emit_common_header () // See c_unparser::visit_statement() o->newline() << "const char *last_stmt;"; o->newline() << "struct pt_regs *regs;"; + o->newline() << "struct kretprobe_instance *pi;"; o->newline() << "union {"; o->indent(1); @@ -3679,7 +3680,7 @@ emit_symbol_data (systemtap_session& s) // excessive penalty of i18n code in some glibc/coreutils versions. string sorted_kallsyms = s.tmpdir + "/symbols.sorted"; - string sortcmd = "grep \" [tT] \" /proc/kallsyms | "; + string sortcmd = "grep \" [AtT] \" /proc/kallsyms | "; sortcmd += "sort "; #if __LP64__ @@ -3717,7 +3718,7 @@ emit_symbol_data (systemtap_session& s) } // NB: kallsyms includes some duplicate addresses - if ((type == "t" || type == "T") && lastaddr != addr) + if ((type == "t" || type == "T" || type == "A") && lastaddr != addr) { kallsyms_out << " { 0x" << addr << ", " << "\"" << sym << "\", " @@ -3872,6 +3873,7 @@ translate_pass (systemtap_session& s) } rc |= emit_symbol_data (s); + s.op->line() << "\n"; delete s.op; |