ENH: addr2line for Darwin handles relative addresses for executables

This commit is contained in:
Mark Olesen
2018-06-14 11:28:05 +02:00
parent e20eaf6af9
commit e59d167ed3

View File

@ -115,13 +115,13 @@ void printSourceFileAndLine
uintptr_t address = uintptr_t(addr); uintptr_t address = uintptr_t(addr);
word myAddress = addressToWord(address); word myAddress = addressToWord(address);
if // Can use relative addresses for executables and libraries with the
( // Darwin addr2line implementation.
filename.hasExt("so") // On other systems (Linux), only use relative addresses for libraries.
#ifdef darwin
|| filename.hasExt("dylib") #ifndef darwin
#endif if (filename.hasExt("so"))
) #endif
{ {
// Convert address into offset into dynamic library // Convert address into offset into dynamic library
uintptr_t offset = uintptr_t(info->dli_fbase); uintptr_t offset = uintptr_t(info->dli_fbase);