Loading debuggerd/libdebuggerd/tombstone.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -422,8 +422,10 @@ static bool dump_thread(log_t* log, BacktraceMap* map, Memory* process_memory, dump_registers(log, thread_info.registers.get()); // Unwind will mutate the registers, so make a copy first. std::unique_ptr<Regs> regs_copy(thread_info.registers->Clone()); std::vector<backtrace_frame_data_t> frames; if (!Backtrace::Unwind(thread_info.registers.get(), map, &frames, 0, nullptr)) { if (!Backtrace::Unwind(regs_copy.get(), map, &frames, 0, nullptr)) { _LOG(log, logtype::THREAD, "Failed to unwind"); return false; } Loading libunwindstack/RegsArm.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -197,4 +197,8 @@ bool RegsArm::StepIfSignalHandler(uint64_t rel_pc, Elf* elf, Memory* process_mem return true; } Regs* RegsArm::Clone() { return new RegsArm(*this); } } // namespace unwindstack libunwindstack/RegsArm64.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -148,4 +148,8 @@ bool RegsArm64::StepIfSignalHandler(uint64_t rel_pc, Elf* elf, Memory* process_m return true; } Regs* RegsArm64::Clone() { return new RegsArm64(*this); } } // namespace unwindstack libunwindstack/RegsMips.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -173,4 +173,8 @@ bool RegsMips::StepIfSignalHandler(uint64_t rel_pc, Elf* elf, Memory* process_me return true; } Regs* RegsMips::Clone() { return new RegsMips(*this); } } // namespace unwindstack libunwindstack/RegsMips64.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -160,4 +160,8 @@ bool RegsMips64::StepIfSignalHandler(uint64_t rel_pc, Elf* elf, Memory* process_ return true; } Regs* RegsMips64::Clone() { return new RegsMips64(*this); } } // namespace unwindstack Loading
debuggerd/libdebuggerd/tombstone.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -422,8 +422,10 @@ static bool dump_thread(log_t* log, BacktraceMap* map, Memory* process_memory, dump_registers(log, thread_info.registers.get()); // Unwind will mutate the registers, so make a copy first. std::unique_ptr<Regs> regs_copy(thread_info.registers->Clone()); std::vector<backtrace_frame_data_t> frames; if (!Backtrace::Unwind(thread_info.registers.get(), map, &frames, 0, nullptr)) { if (!Backtrace::Unwind(regs_copy.get(), map, &frames, 0, nullptr)) { _LOG(log, logtype::THREAD, "Failed to unwind"); return false; } Loading
libunwindstack/RegsArm.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -197,4 +197,8 @@ bool RegsArm::StepIfSignalHandler(uint64_t rel_pc, Elf* elf, Memory* process_mem return true; } Regs* RegsArm::Clone() { return new RegsArm(*this); } } // namespace unwindstack
libunwindstack/RegsArm64.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -148,4 +148,8 @@ bool RegsArm64::StepIfSignalHandler(uint64_t rel_pc, Elf* elf, Memory* process_m return true; } Regs* RegsArm64::Clone() { return new RegsArm64(*this); } } // namespace unwindstack
libunwindstack/RegsMips.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -173,4 +173,8 @@ bool RegsMips::StepIfSignalHandler(uint64_t rel_pc, Elf* elf, Memory* process_me return true; } Regs* RegsMips::Clone() { return new RegsMips(*this); } } // namespace unwindstack
libunwindstack/RegsMips64.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -160,4 +160,8 @@ bool RegsMips64::StepIfSignalHandler(uint64_t rel_pc, Elf* elf, Memory* process_ return true; } Regs* RegsMips64::Clone() { return new RegsMips64(*this); } } // namespace unwindstack