debuggerd_fallback: print maps.
Bug: http://b/63400743 Bug: http://b/65590288 Test: killall -ABRT media.codec Change-Id: I58e47dcd8e99ad7a5945604c27876dd01259e501
This commit is contained in:
parent
18149b6764
commit
fdc95c9670
1 changed files with 13 additions and 1 deletions
|
@ -800,10 +800,22 @@ void engrave_tombstone_ucontext(int tombstone_fd, uintptr_t abort_msg_address, s
|
|||
dump_abort_message(backtrace.get(), &log, abort_msg_address);
|
||||
dump_registers(&log, ucontext);
|
||||
|
||||
// TODO: Dump registers from the ucontext.
|
||||
if (backtrace->Unwind(0, ucontext)) {
|
||||
dump_backtrace_and_stack(backtrace.get(), &log);
|
||||
} else {
|
||||
ALOGE("Unwind failed: pid = %d, tid = %d", pid, tid);
|
||||
}
|
||||
|
||||
// TODO: Make this match the format of dump_all_maps above.
|
||||
_LOG(&log, logtype::MAPS, "memory map:\n");
|
||||
android::base::unique_fd maps_fd(open("/proc/self/maps", O_RDONLY | O_CLOEXEC));
|
||||
if (maps_fd == -1) {
|
||||
_LOG(&log, logtype::MAPS, " failed to open /proc/self/maps: %s", strerror(errno));
|
||||
} else {
|
||||
char buf[256];
|
||||
ssize_t rc;
|
||||
while ((rc = TEMP_FAILURE_RETRY(read(maps_fd.get(), buf, sizeof(buf)))) > 0) {
|
||||
android::base::WriteFully(tombstone_fd, buf, rc);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue