Commit 6b4082ec authored by Tudor Bosman's avatar Tudor Bosman Committed by Jordan DeLong

Verbosify exception tracer dumps

Test Plan: by hand

Reviewed By: philipp@fb.com

FB internal diff: D570233
parent 78ee2805
...@@ -44,10 +44,14 @@ namespace exception_tracer { ...@@ -44,10 +44,14 @@ namespace exception_tracer {
std::ostream& operator<<(std::ostream& out, const ExceptionInfo& info) { std::ostream& operator<<(std::ostream& out, const ExceptionInfo& info) {
out << "Exception type: "; out << "Exception type: ";
if (info.type) { if (info.type) {
out << folly::demangle(*info.type) << "\n"; out << folly::demangle(*info.type);
} else { } else {
out << "(unknown type)\n"; out << "(unknown type)";
} }
out << " (" << info.frames.size()
<< (info.frames.size() == 1 ? " frame" : " frames")
<< ")\n";
try {
Symbolizer symbolizer; Symbolizer symbolizer;
folly::StringPiece symbolName; folly::StringPiece symbolName;
Dwarf::LocationInfo location; Dwarf::LocationInfo location;
...@@ -57,6 +61,11 @@ std::ostream& operator<<(std::ostream& out, const ExceptionInfo& info) { ...@@ -57,6 +61,11 @@ std::ostream& operator<<(std::ostream& out, const ExceptionInfo& info) {
symbolizer.symbolize(ip-1, symbolName, location); symbolizer.symbolize(ip-1, symbolName, location);
Symbolizer::write(out, ip, symbolName, location); Symbolizer::write(out, ip, symbolName, location);
} }
} catch (const std::exception& e) {
out << "\n !! caught " << folly::exceptionStr(e) << "\n";
} catch (...) {
out << "\n !!! caught unexpected exception\n";
}
return out; return out;
} }
...@@ -159,10 +168,11 @@ void dumpExceptionStack(const char* prefix) { ...@@ -159,10 +168,11 @@ void dumpExceptionStack(const char* prefix) {
if (exceptions.empty()) { if (exceptions.empty()) {
return; return;
} }
LOG(ERROR) << prefix << ", exception stack follows\n"; LOG(ERROR) << prefix << ", exception stack follows";
for (auto& exc : exceptions) { for (auto& exc : exceptions) {
LOG(ERROR) << exc << "\n"; LOG(ERROR) << exc << "\n";
} }
LOG(ERROR) << "exception stack complete";
} }
void terminateHandler() { void terminateHandler() {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment