From e59d167ed3306a32fc551d144b218ffe93f277d6 Mon Sep 17 00:00:00 2001 From: Mark Olesen <Mark.Olesen@esi-group.com> Date: Thu, 14 Jun 2018 11:28:05 +0200 Subject: [PATCH] ENH: addr2line for Darwin handles relative addresses for executables --- src/OSspecific/POSIX/printStack.C | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/OSspecific/POSIX/printStack.C b/src/OSspecific/POSIX/printStack.C index eb98c5338fa..4d6fdab47a4 100644 --- a/src/OSspecific/POSIX/printStack.C +++ b/src/OSspecific/POSIX/printStack.C @@ -115,13 +115,13 @@ void printSourceFileAndLine uintptr_t address = uintptr_t(addr); word myAddress = addressToWord(address); - if - ( - filename.hasExt("so") - #ifdef darwin - || filename.hasExt("dylib") - #endif - ) + // Can use relative addresses for executables and libraries with the + // Darwin addr2line implementation. + // On other systems (Linux), only use relative addresses for libraries. + + #ifndef darwin + if (filename.hasExt("so")) + #endif { // Convert address into offset into dynamic library uintptr_t offset = uintptr_t(info->dli_fbase); -- GitLab