Delete DumpBacktrace.

It was enabled only when building with libstdc++ (the C++ library
bundled with gcc), which we rarely do these days. And it's unclear if
it ever worked well.

Bug: none
Change-Id: I1c4b3e498fb240ba946542afd194b254fcd2da19
Reviewed-on: https://webrtc-review.googlesource.com/46102
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21828}
This commit is contained in:
Niels Möller 2018-01-30 15:08:16 +01:00 committed by Commit Bot
parent 21a35bc188
commit 7c4dedade1

View File

@ -11,16 +11,10 @@
// Most of this was borrowed (with minor modifications) from V8's and Chromium's
// src/base/logging.cc.
// Use the C++ version to provide __GLIBCXX__.
#include <cstdarg>
#include <cstdio>
#include <cstdlib>
#if defined(__GLIBCXX__) && !defined(__UCLIBC__)
#include <cxxabi.h>
#include <execinfo.h>
#endif
#if defined(WEBRTC_ANDROID)
#define RTC_LOG_TAG_ANDROID "rtc"
#include <android/log.h> // NOLINT
@ -69,40 +63,6 @@ void PrintError(const char* format, ...) {
va_end(args);
}
// TODO(ajm): This works on Mac (although the parsing fails) but I don't seem
// to get usable symbols on Linux. This is copied from V8. Chromium has a more
// advanced stace trace system; also more difficult to copy.
void DumpBacktrace() {
#if defined(__GLIBCXX__) && !defined(__UCLIBC__)
void* trace[100];
int size = backtrace(trace, sizeof(trace) / sizeof(*trace));
char** symbols = backtrace_symbols(trace, size);
PrintError("\n==== C stack trace ===============================\n\n");
if (size == 0) {
PrintError("(empty)\n");
} else if (symbols == nullptr) {
PrintError("(no symbols)\n");
} else {
for (int i = 1; i < size; ++i) {
char mangled[201];
if (sscanf(symbols[i], "%*[^(]%*[(]%200[^)+]", mangled) == 1) { // NOLINT
PrintError("%2d: ", i);
int status;
size_t length;
char* demangled =
abi::__cxa_demangle(mangled, nullptr, &length, &status);
PrintError("%s\n", demangled != nullptr ? demangled : mangled);
free(demangled);
} else {
// If parsing failed, at least print the unparsed symbol.
PrintError("%s\n", symbols[i]);
}
}
}
free(symbols);
#endif
}
} // namespace
FatalMessage::FatalMessage(const char* file, int line) {
@ -120,7 +80,6 @@ NO_RETURN FatalMessage::~FatalMessage() {
fflush(stderr);
stream_ << std::endl << "#" << std::endl;
PrintError("%s", stream_.str().c_str());
DumpBacktrace();
fflush(stderr);
abort();
}