diff options
Diffstat (limited to 'libbacktrace/UnwindStack.cpp')
-rw-r--r-- | libbacktrace/UnwindStack.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/libbacktrace/UnwindStack.cpp b/libbacktrace/UnwindStack.cpp index ff19833a4..f5f9b2ada 100644 --- a/libbacktrace/UnwindStack.cpp +++ b/libbacktrace/UnwindStack.cpp @@ -32,6 +32,9 @@ #include <unwindstack/Regs.h> #include <unwindstack/RegsGetLocal.h> +#if !defined(NO_LIBDEXFILE_SUPPORT) +#include <unwindstack/DexFiles.h> +#endif #include <unwindstack/Unwinder.h> #include "BacktraceLog.h" @@ -47,6 +50,14 @@ bool Backtrace::Unwind(unwindstack::Regs* regs, BacktraceMap* back_map, regs, stack_map->process_memory()); unwinder.SetResolveNames(stack_map->ResolveNames()); stack_map->SetArch(regs->Arch()); + if (stack_map->GetJitDebug() != nullptr) { + unwinder.SetJitDebug(stack_map->GetJitDebug(), regs->Arch()); + } +#if !defined(NO_LIBDEXFILE_SUPPORT) + if (stack_map->GetDexFiles() != nullptr) { + unwinder.SetDexFiles(stack_map->GetDexFiles(), regs->Arch()); + } +#endif unwinder.Unwind(skip_names, &stack_map->GetSuffixesToIgnore()); if (error != nullptr) { switch (unwinder.LastErrorCode()) { |