Merge "Avoid thread cache in unwinder."

This commit is contained in:
Christopher Ferris 2021-06-14 23:58:01 +00:00 committed by Gerrit Code Review
commit 4c68e77b45

View file

@ -87,6 +87,12 @@ static void debuggerd_fallback_trace(int output_fd, ucontext_t* ucontext) {
// TODO: Create this once and store it in a global?
unwindstack::UnwinderFromPid unwinder(kMaxFrames, getpid());
// Do not use the thread cache here because it will call pthread_key_create
// which doesn't work in linker code. See b/189803009.
// Use a normal cached object because the process is stopped, and there
// is no chance of data changing between reads.
auto process_memory = unwindstack::Memory::CreateProcessMemoryCached(getpid());
unwinder.SetProcessMemory(process_memory);
dump_backtrace_thread(output_fd, &unwinder, thread);
}
__linker_disable_fallback_allocator();