| Index: src/base/logging.cc | 
| diff --git a/src/base/logging.cc b/src/base/logging.cc | 
| index 25d77bb1ec1dc9b9e9e84e3ac2460eb689ac088f..a2688c9c9aefb1f566f048e79c7f6ec4c0f9db16 100644 | 
| --- a/src/base/logging.cc | 
| +++ b/src/base/logging.cc | 
| @@ -5,10 +5,11 @@ | 
| #include "src/base/logging.h" | 
|  | 
| #if V8_LIBC_GLIBC || V8_OS_BSD | 
| -# include <cxxabi.h> | 
| -# include <execinfo.h> | 
| +#include <cxxabi.h> | 
| +#include <dlfcn.h> | 
| +#include <execinfo.h> | 
| #elif V8_OS_QNX | 
| -# include <backtrace.h> | 
| +#include <backtrace.h> | 
| #endif  // V8_LIBC_GLIBC || V8_OS_BSD | 
|  | 
| #include <cstdio> | 
| @@ -54,28 +55,24 @@ void DumpBacktrace() { | 
| #if V8_LIBC_GLIBC || V8_OS_BSD | 
| void* trace[100]; | 
| int size = backtrace(trace, arraysize(trace)); | 
| -  char** symbols = backtrace_symbols(trace, size); | 
| OS::PrintError("\n==== C stack trace ===============================\n\n"); | 
| if (size == 0) { | 
| OS::PrintError("(empty)\n"); | 
| -  } else if (symbols == NULL) { | 
| -    OS::PrintError("(no symbols)\n"); | 
| } else { | 
| for (int i = 1; i < size; ++i) { | 
| OS::PrintError("%2d: ", i); | 
| -      char mangled[201]; | 
| -      if (sscanf(symbols[i], "%*[^(]%*[(]%200[^)+]", mangled) == 1) {  // NOLINT | 
| -        int status; | 
| -        size_t length; | 
| -        char* demangled = abi::__cxa_demangle(mangled, NULL, &length, &status); | 
| -        OS::PrintError("%s\n", demangled != NULL ? demangled : mangled); | 
| +      Dl_info info; | 
| +      char* demangled = NULL; | 
| +      if (!dladdr(trace[i], &info) || !info.dli_sname) { | 
| +        OS::PrintError("%p\n", trace[i]); | 
| +      } else if ((demangled = abi::__cxa_demangle(info.dli_sname, 0, 0, 0))) { | 
| +        OS::PrintError("%s\n", demangled); | 
| free(demangled); | 
| } else { | 
| -        OS::PrintError("??\n"); | 
| +        OS::PrintError("%s\n", info.dli_sname); | 
| } | 
| } | 
| } | 
| -  free(symbols); | 
| #elif V8_OS_QNX | 
| char out[1024]; | 
| bt_accessor_t acc; | 
|  |