DynamoRIO / DynamoRIO/drmemory

addr2line limitations: crashes in some cases, gets file wrong in others

Open
#180 1 comment 0 reactions 0 assignees View on GitHub
Component-Heapstat Migrated Priority-Low
Dominant language
C
Stars
2.7k
Forks
290
PR merge metrics
No merged PRs in 30d

Description

_From [derek.br...@gmail.com](https://code.google.com/u/117968039472581148324/) on December 10, 2010 17:58:18_

PR 530836

I implemented PR 526420 to work around this crash on Fedora 12:

> addr2line -f -e /usr/lib/debug/lib/ld-2.11.so.debug 0x1749b
Segmentation fault (core dumped)

unfortunately that's the address of strlen, which we want in our default
suppression file (not exported so we can't replace it): for now putting *
in default file.

addr2line also gets the source file wrong here:
> addr2line -f -e /lib/ld-linux.so.2 0x944031
_dl_relocate_object
strnlen.c:0

gdb has it right:
#9 0x00944031 in _dl_relocate_object (scope= , reloc_mode= ,
consider_profiling= ) at dl-reloc.c:268
direct on .debug gives different but more accurate answer:

PR 530836: addr2line crashes on strlen addr
- changed default suppression file to use \* instead of strlen
alternative would be to extend hacky pattern-match code inside DrMem:
I think this is better and I'm not too worried about over-suppressing
inside that loader routine.
- added an uninit for loader strlen as well that I see occasionally.
not as happy about this one: but we'll live w/ the risk of false
negatives until we either fix addr2line or get PR 486382.

_Original issue: http://code.google.com/p/drmemory/issues/detail?id=180_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.