diff options
author | David Smith <dsmith@redhat.com> | 2009-04-08 12:42:39 -0500 |
---|---|---|
committer | David Smith <dsmith@redhat.com> | 2009-04-08 12:42:39 -0500 |
commit | f149549158a3d6dcb1118323d1dbcec27c4b3bbe (patch) | |
tree | 026809a32737d2abf37808b0983de0a09315b2c2 /translate.cxx | |
parent | 55c0f2bfefb04915622dd3688bba59da1addaec8 (diff) | |
parent | 909478bf88251987368339b1102f56fbd2d11ebd (diff) | |
download | systemtap-steved-f149549158a3d6dcb1118323d1dbcec27c4b3bbe.tar.gz systemtap-steved-f149549158a3d6dcb1118323d1dbcec27c4b3bbe.tar.xz systemtap-steved-f149549158a3d6dcb1118323d1dbcec27c4b3bbe.zip |
Merge branch 'master' of ssh://sources.redhat.com/git/systemtap
Diffstat (limited to 'translate.cxx')
-rw-r--r-- | translate.cxx | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/translate.cxx b/translate.cxx index c42097bb..3442703d 100644 --- a/translate.cxx +++ b/translate.cxx @@ -4576,10 +4576,13 @@ dump_unwindsyms (Dwfl_Module *m, // PC's, so we omit undefined or "fake" absolute addresses. // These fake absolute addresses occur in some older i386 // kernels to indicate they are vDSO symbols, not real - // functions in the kernel. + // functions in the kernel. We also omit symbols that have + // suspicious addresses (before base). 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)) + && !(sym.st_shndx == SHN_UNDEF + || sym.st_shndx == SHN_ABS + || sym.st_value < base)) { Dwarf_Addr sym_addr = sym.st_value; const char *secname = NULL; |