X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=common%2Ftrace_backtrace.cpp;h=ba2a3739a6082b48a03e036bd0f4976c23c56f55;hb=5c101c9efbb0f7ef0aae37a43f746e1466c669ee;hp=83c9d46e5e06f8d2d3e19390b152a10c97d8588b;hpb=cdb36493d8b982447e668eb7187f8b884c43ed0c;p=apitrace diff --git a/common/trace_backtrace.cpp b/common/trace_backtrace.cpp index 83c9d46..ba2a373 100644 --- a/common/trace_backtrace.cpp +++ b/common/trace_backtrace.cpp @@ -33,7 +33,7 @@ #include "trace_backtrace.hpp" -#if defined(ANDROID) or defined(__ELF__) +#if defined(ANDROID) || defined(__ELF__) #include #include "os.hpp" @@ -112,7 +112,7 @@ bool backtrace_is_needed(const char* fname) { } /* namespace trace */ -#ifdef ANDROID +#if defined(ANDROID) #include #include "os.hpp" @@ -270,14 +270,15 @@ std::vector get_backtrace() { } /* end ANDROID */ -#elif defined __linux__ +#elif defined(__ELF__) #include #include #include #include +#include -#include "backtrace.h" +#include namespace trace { @@ -330,6 +331,9 @@ class libbacktraceProvider { frame.linenumber = line; if (func) frame.function = func; + int status; + if (func && (func = abi::__cxa_demangle(func, NULL, NULL, &status))) + frame.function = func; this_->current_frames->push_back(frame); return 0; }