diff options
author | Jim Keniston <jkenisto@us.ibm.com> | 2009-03-31 11:06:58 -0700 |
---|---|---|
committer | Jim Keniston <jkenisto@us.ibm.com> | 2009-03-31 11:06:58 -0700 |
commit | 2020af07c2a7f58538874ce652b52a6883f7ada0 (patch) | |
tree | 25c9ae36d86a27963d52cdb5a780e4b90c5967f4 /translate.cxx | |
parent | 1cd9c3ad40595180123083109e5b7d1230095f54 (diff) | |
parent | c5746f91b1ba8f374b4230e16cb33e1b9206ca2b (diff) | |
download | systemtap-steved-2020af07c2a7f58538874ce652b52a6883f7ada0.tar.gz systemtap-steved-2020af07c2a7f58538874ce652b52a6883f7ada0.tar.xz systemtap-steved-2020af07c2a7f58538874ce652b52a6883f7ada0.zip |
Merge branch 'master' of ssh://kenistoj@sources.redhat.com/git/systemtap
Diffstat (limited to 'translate.cxx')
-rw-r--r-- | translate.cxx | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/translate.cxx b/translate.cxx index 40bb82c2..47fffd1e 100644 --- a/translate.cxx +++ b/translate.cxx @@ -4564,7 +4564,7 @@ dump_unwindsyms (Dwfl_Module *m, // base address outself. (see also below). extra_offset = sym.st_value - base; if (c->session.verbose > 2) - clog << "Found kernel _stext 0x" << hex << extra_offset << dec << endl; + clog << "Found kernel _stext extra offset 0x" << hex << extra_offset << dec << endl; } // We only need the function symbols to identify kernel-mode @@ -4572,8 +4572,9 @@ dump_unwindsyms (Dwfl_Module *m, // These fake absolute addresses occur in some older i386 // kernels to indicate they are vDSO symbols, not real // functions in the kernel. - if (GELF_ST_TYPE (sym.st_info) == STT_FUNC && - ! (sym.st_shndx == SHN_UNDEF || sym.st_shndx == SHN_ABS)) + if ((GELF_ST_TYPE (sym.st_info) == STT_FUNC || + GELF_ST_TYPE (sym.st_info) == STT_OBJECT) // PR10000: also need .data + && !(sym.st_shndx == SHN_UNDEF || sym.st_shndx == SHN_ABS)) { Dwarf_Addr sym_addr = sym.st_value; const char *secname = NULL; @@ -4824,6 +4825,7 @@ emit_symbol_data (systemtap_session& s) do { if (pending_interrupts) return; + if (ctx.undone_unwindsym_modules.empty()) break; off = dwfl_getmodules (dwfl, &dump_unwindsyms, (void *) &ctx, 0); } while (off > 0); @@ -4862,6 +4864,7 @@ emit_symbol_data (systemtap_session& s) do { if (pending_interrupts) return; + if (ctx.undone_unwindsym_modules.empty()) break; off = dwfl_getmodules (dwfl, &dump_unwindsyms, (void *) &ctx, 0); } while (off > 0); |