summaryrefslogtreecommitdiff
path: root/debuggerd/libdebuggerd/backtrace.cpp
diff options
context:
space:
mode:
authorChristopher Ferris <cferris@google.com>2020-09-28 20:33:51 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2020-09-28 20:33:51 +0000
commit96e73d573e09dd8cb0afb1205ca7df1f0c20fa98 (patch)
tree1f139a357de89063c2ca58754f583de61797e456 /debuggerd/libdebuggerd/backtrace.cpp
parent75766694c2969fc87ae2ab81733894d659e80947 (diff)
parent06c5c6958ad9455b579b7b29c0fc881adec573cc (diff)
Merge "Add arch member into Unwinder object." am: 087552a89b am: 89f54f6f86 am: d232e3c435 am: 0bd4f2dfc1 am: 06c5c6958a
Original change: https://android-review.googlesource.com/c/platform/system/core/+/1437275 Change-Id: I5c48e2558686db96b082d0d334a97c24f4296037
Diffstat (limited to 'debuggerd/libdebuggerd/backtrace.cpp')
-rw-r--r--debuggerd/libdebuggerd/backtrace.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/debuggerd/libdebuggerd/backtrace.cpp b/debuggerd/libdebuggerd/backtrace.cpp
index f5a873c4d3..c543a83921 100644
--- a/debuggerd/libdebuggerd/backtrace.cpp
+++ b/debuggerd/libdebuggerd/backtrace.cpp
@@ -18,8 +18,9 @@
#include "libdebuggerd/backtrace.h"
-#include <errno.h>
#include <dirent.h>
+#include <errno.h>
+#include <inttypes.h>
#include <limits.h>
#include <stddef.h>
#include <stdio.h>
@@ -65,7 +66,11 @@ void dump_backtrace_thread(int output_fd, unwindstack::Unwinder* unwinder,
unwinder->SetRegs(thread.registers.get());
unwinder->Unwind();
if (unwinder->NumFrames() == 0) {
- _LOG(&log, logtype::THREAD, "Unwind failed: tid = %d", thread.tid);
+ _LOG(&log, logtype::THREAD, "Unwind failed: tid = %d\n", thread.tid);
+ if (unwinder->LastErrorCode() != unwindstack::ERROR_NONE) {
+ _LOG(&log, logtype::THREAD, " Error code: %s\n", unwinder->LastErrorCodeString());
+ _LOG(&log, logtype::THREAD, " Error address: 0x%" PRIx64 "\n", unwinder->LastErrorAddress());
+ }
return;
}