diff options
author | Mark Wielaard <mjw@redhat.com> | 2009-02-19 14:50:05 +0100 |
---|---|---|
committer | Mark Wielaard <mjw@redhat.com> | 2009-02-19 14:53:41 +0100 |
commit | 49e34da0845cf50fdffa955ed6620b8e97b92872 (patch) | |
tree | 52c7236c234500c2bc75be0fd38abcf3d22948ab | |
parent | d784c94d2b2d4664dad6a1f881c85169ab457288 (diff) | |
download | systemtap-steved-49e34da0845cf50fdffa955ed6620b8e97b92872.tar.gz systemtap-steved-49e34da0845cf50fdffa955ed6620b8e97b92872.tar.xz systemtap-steved-49e34da0845cf50fdffa955ed6620b8e97b92872.zip |
Ignore symbols before module base address.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | translate.cxx | 6 |
2 files changed, 11 insertions, 0 deletions
@@ -1,3 +1,8 @@ +2009-02-19 Mark Wielaard <mjw@redhat.com> + + * translate.cxx (dump_unwindsyms): Ignore symbols before module + base address. + 2009-02-18 Frank Ch. Eigler <fche@elastic.org> PR9719. diff --git a/translate.cxx b/translate.cxx index 31f2043f..e87e9876 100644 --- a/translate.cxx +++ b/translate.cxx @@ -4544,6 +4544,12 @@ dump_unwindsyms (Dwfl_Module *m, Dwarf_Addr sym_addr = sym.st_value; const char *secname = NULL; + // Symbol addresses before the base address of the module + // are suspect. Older kernels had those for some vsdo + // symbols. They mess up our logic, ignore them. + if (sym_addr < base) + continue; + if (n > 0) // only try to relocate if there exist relocation bases { int ki = dwfl_module_relocate_address (m, &sym_addr); |