diff options
author | Christopher Ferris <cferris@google.com> | 2014-01-22 19:21:07 -0800 |
---|---|---|
committer | Christopher Ferris <cferris@google.com> | 2014-01-28 12:03:36 -0800 |
commit | df2906186b6952c57b1f662bfef0b65c9f8c2e0d (patch) | |
tree | e5ed8339b7fd42ff20047244f87106c8f1fa0d45 /debuggerd | |
parent | 6ddabb7a1cc3080ae773acb045f69b5e6afee87a (diff) | |
download | system_core-df2906186b6952c57b1f662bfef0b65c9f8c2e0d.zip system_core-df2906186b6952c57b1f662bfef0b65c9f8c2e0d.tar.gz system_core-df2906186b6952c57b1f662bfef0b65c9f8c2e0d.tar.bz2 |
Re-enable libunwind for arm.
Update to handle the new optimized way that libunwind works.
In addition, a small refactor of the BacktraceMap code.
A few new tests of for good measure.
Change-Id: I2f9b4f5ad5a0dfe907b31febee76e4b9b94fb76f
Diffstat (limited to 'debuggerd')
-rw-r--r-- | debuggerd/tombstone.cpp | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/debuggerd/tombstone.cpp b/debuggerd/tombstone.cpp index acb6ed6..f0e63af 100644 --- a/debuggerd/tombstone.cpp +++ b/debuggerd/tombstone.cpp @@ -638,12 +638,9 @@ static bool dump_crash(log_t* log, pid_t pid, pid_t tid, int signal, uintptr_t a dump_fault_addr(log, tid, signal); } - BacktraceMap* map = NULL; - UniquePtr<Backtrace> backtrace(Backtrace::Create(pid, tid)); + UniquePtr<BacktraceMap> map(BacktraceMap::Create(pid)); + UniquePtr<Backtrace> backtrace(Backtrace::Create(pid, tid, map.get())); if (backtrace->Unwind(0)) { - // Grab the map that was created and share it with the siblings. - map = backtrace->TakeMapOwnership(); - dump_abort_message(backtrace.get(), log, abort_msg_address); dump_thread(backtrace.get(), log, SCOPE_AT_FAULT, total_sleep_time_usec); } @@ -654,12 +651,9 @@ static bool dump_crash(log_t* log, pid_t pid, pid_t tid, int signal, uintptr_t a bool detach_failed = false; if (dump_sibling_threads) { - detach_failed = dump_sibling_thread_report(log, pid, tid, total_sleep_time_usec, map); + detach_failed = dump_sibling_thread_report(log, pid, tid, total_sleep_time_usec, map.get()); } - // Destroy the BacktraceMap object. - delete map; - if (want_logs) { dump_logs(log, pid, false); } |