From 41b0948466bb472b92f096a9e5359eb402991dca Mon Sep 17 00:00:00 2001 From: Edouard DUPIN Date: Thu, 10 Aug 2017 21:40:41 +0200 Subject: [PATCH] [DEV] add backtrace for MacOs --- elog/log.cpp | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/elog/log.cpp b/elog/log.cpp index 31d3089..9a11661 100644 --- a/elog/log.cpp +++ b/elog/log.cpp @@ -41,9 +41,9 @@ int stack_depth = backtrace(trace, MAX_DEPTH); ELOG_PRINT("Back-trace : "); - for (int32_t i = 1; i < stack_depth; i++) { + for (int32_t iii = 1; iii < stack_depth; ++iii) { Dl_info dlinfo; - if(!dladdr(trace[i], &dlinfo)) { + if(!dladdr(trace[iii], &dlinfo)) { break; } const char * symname = dlinfo.dli_sname; @@ -65,6 +65,25 @@ assert(false); } } +#elif defined(__TARGET_OS__MacOs) \ + && defined(DEBUG) \ + && defined(__MAC_10_5) + #include + #include + #define MAX_DEPTH (256) + void elog::displayBacktrace(bool _breakAtEnd, int32_t _removeElement) { + void* callstack[MAX_DEPTH]; + uint32_t frames = backtrace(callstack, MAX_DEPTH); + char** strs = backtrace_symbols(callstack, frames); + ELOG_PRINT("Back-trace : "); + for (uint32_t iii=0; iii