/aosp12/system/unwinding/libunwindstack/benchmarks/ |
H A D | local_unwind_benchmarks.cpp | 35 std::shared_ptr<unwindstack::Memory>& process_memory; member 86 auto process_memory = unwindstack::Memory::CreateProcessMemory(getpid()); in BM_local_unwind_uncached_process_memory() local 92 UnwindData data = {.process_memory = process_memory, .maps = &maps, .resolve_names = true}; in BM_local_unwind_uncached_process_memory() 104 UnwindData data = {.process_memory = process_memory, .maps = &maps, .resolve_names = true}; in BM_local_unwind_cached_process_memory() 116 UnwindData data = {.process_memory = process_memory, .maps = &maps, .resolve_names = true}; in BM_local_unwind_local_updatable_maps_uncached() 128 UnwindData data = {.process_memory = process_memory, .maps = &maps, .resolve_names = true}; in BM_local_unwind_local_updatable_maps_cached() 140 UnwindData data = {.process_memory = process_memory, .maps = &maps, .resolve_names = true}; in BM_local_unwind_local_updatable_maps_thread_cached() 162 UnwindData data = {.process_memory = process_memory, .maps = &maps, .resolve_names = false}; in BM_local_unwind_uncached_process_memory_no_func_names() 174 UnwindData data = {.process_memory = process_memory, .maps = &maps, .resolve_names = false}; in BM_local_unwind_cached_process_memory_no_func_names() 186 UnwindData data = {.process_memory = process_memory, .maps = &maps, .resolve_names = false}; in BM_local_unwind_local_updatable_maps_uncached_no_func_names() [all …]
|
H A D | remote_unwind_benchmarks.cpp | 112 std::shared_ptr<unwindstack::Memory> process_memory; in RemoteUnwind() local 114 process_memory = unwindstack::Memory::CreateProcessMemoryCached(pid); in RemoteUnwind() 116 process_memory = unwindstack::Memory::CreateProcessMemory(pid); in RemoteUnwind() 125 unwindstack::Unwinder unwinder(32, &maps, regs.get(), process_memory); in RemoteUnwind()
|
/aosp12/system/unwinding/libunwindstack/ |
H A D | MapInfo.cpp | 136 Memory* MapInfo::CreateMemory(const std::shared_ptr<Memory>& process_memory) { in CreateMemory() argument 156 if (process_memory == nullptr) { in CreateMemory() 167 std::unique_ptr<MemoryRange> memory(new MemoryRange(process_memory, start(), end() - start(), 0)); in CreateMemory() 183 ranges->Insert(new MemoryRange(process_memory, start(), end() - start(), 0)); in CreateMemory() 184 ranges->Insert(new MemoryRange(process_memory, next_real_map()->start(), in CreateMemory() 208 ranges->Insert(new MemoryRange(process_memory, prev_real_map()->start(), in CreateMemory() 210 ranges->Insert(new MemoryRange(process_memory, start(), end() - start(), elf_offset())); in CreateMemory() 215 Elf* MapInfo::GetElf(const std::shared_ptr<Memory>& process_memory, ArchEnum expected_arch) { in GetElf() argument 234 Memory* memory = CreateMemory(process_memory); in GetElf() 289 uint64_t MapInfo::GetLoadBias(const std::shared_ptr<Memory>& process_memory) { in GetLoadBias() argument [all …]
|
H A D | RegsX86.cpp | 53 bool RegsX86::SetPcFromReturnAddress(Memory* process_memory) { in SetPcFromReturnAddress() argument 56 if (!process_memory->ReadFully(regs_[X86_REG_SP], &new_pc, sizeof(new_pc)) || in SetPcFromReturnAddress() 115 bool RegsX86::StepIfSignalHandler(uint64_t elf_offset, Elf* elf, Memory* process_memory) { in StepIfSignalHandler() argument 136 if (!process_memory->ReadFully(regs_[X86_REG_SP] + 4, &context, sizeof(context))) { in StepIfSignalHandler() 161 if (!process_memory->ReadFully(regs_[X86_REG_SP] + 8, &ptr, sizeof(ptr))) { in StepIfSignalHandler() 166 if (!process_memory->ReadFully(ptr + 0x14, &x86_ucontext.uc_mcontext, sizeof(x86_mcontext_t))) { in StepIfSignalHandler()
|
H A D | ElfInterfaceArm.cpp | 103 bool ElfInterfaceArm::Step(uint64_t pc, Regs* regs, Memory* process_memory, bool* finished, in Step() argument 109 return ElfInterface32::Step(pc, regs, process_memory, finished, is_signal_frame) || in Step() 110 StepExidx(pc, regs, process_memory, finished); in Step() 113 bool ElfInterfaceArm::StepExidx(uint64_t pc, Regs* regs, Memory* process_memory, bool* finished) { in StepExidx() argument 127 ArmExidx arm(regs_arm, memory_, process_memory); in StepExidx()
|
H A D | RegsArm.cpp | 99 bool RegsArm::StepIfSignalHandler(uint64_t elf_offset, Elf* elf, Memory* process_memory) { in StepIfSignalHandler() argument 124 if (!process_memory->ReadFully(sp, &data, sizeof(data))) { in StepIfSignalHandler() 149 if (!process_memory->ReadFully(sp, &data, sizeof(data))) { in StepIfSignalHandler() 164 if (!process_memory->ReadFully(offset, regs_.data(), sizeof(uint32_t) * ARM_REG_LAST)) { in StepIfSignalHandler()
|
H A D | RegsX86_64.cpp | 54 bool RegsX86_64::SetPcFromReturnAddress(Memory* process_memory) { in SetPcFromReturnAddress() argument 57 if (!process_memory->ReadFully(regs_[X86_64_REG_SP], &new_pc, sizeof(new_pc)) || in SetPcFromReturnAddress() 135 bool RegsX86_64::StepIfSignalHandler(uint64_t elf_offset, Elf* elf, Memory* process_memory) { in StepIfSignalHandler() argument 156 if (!process_memory->ReadFully(regs_[X86_64_REG_SP] + 0x28, &x86_64_ucontext.uc_mcontext, in StepIfSignalHandler()
|
H A D | RegsMips64.cpp | 122 bool RegsMips64::StepIfSignalHandler(uint64_t elf_offset, Elf* elf, Memory* process_memory) { in StepIfSignalHandler() argument 143 if (!process_memory->Read(sp + 24 + 128 + 40, regs_.data(), in StepIfSignalHandler() 150 if (!process_memory->Read(sp + 24 + 128 + 40 + 576, ®s_[MIPS64_REG_PC], sizeof(uint64_t))) { in StepIfSignalHandler()
|
H A D | ArmExidx.h | 56 ArmExidx(RegsArm* regs, Memory* elf_memory, Memory* process_memory) in ArmExidx() argument 57 : regs_(regs), elf_memory_(elf_memory), process_memory_(process_memory) {} in ArmExidx()
|
H A D | Elf.cpp | 181 bool Elf::StepIfSignalHandler(uint64_t rel_pc, Regs* regs, Memory* process_memory) { in StepIfSignalHandler() argument 190 return regs->StepIfSignalHandler(rel_pc - load_bias_, this, process_memory); in StepIfSignalHandler() 194 bool Elf::Step(uint64_t rel_pc, Regs* regs, Memory* process_memory, bool* finished, in Step() argument 202 return interface_->Step(rel_pc, regs, process_memory, finished, is_signal_frame); in Step()
|
/aosp12/system/core/debuggerd/libdebuggerd/ |
H A D | scudo.cpp | 28 std::unique_ptr<char[]> AllocAndReadFully(unwindstack::Memory* process_memory, uint64_t addr, in AllocAndReadFully() argument 31 if (!process_memory->ReadFully(addr, buf.get(), size)) { in AllocAndReadFully() 37 ScudoCrashData::ScudoCrashData(unwindstack::Memory* process_memory, in ScudoCrashData() argument 43 auto stack_depot = AllocAndReadFully(process_memory, process_info.scudo_stack_depot, in ScudoCrashData() 45 auto region_info = AllocAndReadFully(process_memory, process_info.scudo_region_info, in ScudoCrashData() 47 auto ring_buffer = AllocAndReadFully(process_memory, process_info.scudo_ring_buffer, in ScudoCrashData() 65 process_memory->ReadFully(i, memory.get() + i - memory_begin, PAGE_SIZE); in ScudoCrashData() 70 memory_tags[(i - memory_begin) / kTagGranuleSize] = process_memory->ReadTag(i); in ScudoCrashData()
|
H A D | gwp_asan.cpp | 33 static bool retrieve_gwp_asan_state(unwindstack::Memory* process_memory, uintptr_t state_addr, in retrieve_gwp_asan_state() argument 35 return process_memory->ReadFully(state_addr, state, sizeof(*state)); in retrieve_gwp_asan_state() 44 unwindstack::Memory* process_memory, const gwp_asan::AllocatorState& state, in retrieve_gwp_asan_metadata() argument 56 if (!process_memory->ReadFully(metadata_addr, meta, in retrieve_gwp_asan_metadata() 68 GwpAsanCrashData::GwpAsanCrashData(unwindstack::Memory* process_memory, in GwpAsanCrashData() argument 70 if (!process_memory || !process_info.gwp_asan_metadata || !process_info.gwp_asan_state) return; in GwpAsanCrashData() 72 if (!retrieve_gwp_asan_state(process_memory, process_info.gwp_asan_state, &state_)) return; in GwpAsanCrashData() 73 …metadata_.reset(retrieve_gwp_asan_metadata(process_memory, state_, process_info.gwp_asan_metadata)… in GwpAsanCrashData()
|
H A D | tombstone.cpp | 154 const ProcessInfo& process_info, unwindstack::Memory* process_memory) { in dump_signal_info() argument 162 process_memory->Read(addr, &instruction, sizeof(instruction)); in dump_signal_info() 209 static void dump_abort_message(log_t* log, unwindstack::Memory* process_memory, uint64_t address) { in dump_abort_message() argument 215 if (!process_memory->ReadFully(address, &length, sizeof(length))) { in dump_abort_message() 230 if (!process_memory->ReadFully(address + sizeof(length), &msg[0], length)) { in dump_abort_message() 258 std::shared_ptr<unwindstack::Memory>& process_memory = unwinder->GetProcessMemory(); in dump_all_maps() local 300 uint64_t load_bias = map_info->GetLoadBias(process_memory); in dump_all_maps() 596 auto process_memory = in engrave_tombstone_ucontext() local 598 unwinder.SetProcessMemory(process_memory); in engrave_tombstone_ucontext()
|
/aosp12/system/unwinding/libunwindstack/include/unwindstack/ |
H A D | Unwinder.h | 68 Unwinder(size_t max_frames, Maps* maps, Regs* regs, std::shared_ptr<Memory> process_memory) in Unwinder() argument 72 process_memory_(process_memory), in Unwinder() 74 Unwinder(size_t max_frames, Maps* maps, std::shared_ptr<Memory> process_memory) in Unwinder() argument 75 : max_frames_(max_frames), maps_(maps), process_memory_(process_memory) {} in Unwinder() 134 std::shared_ptr<Memory> process_memory, bool resolve_names); 177 void SetProcessMemory(std::shared_ptr<Memory>& process_memory) { in SetProcessMemory() argument 178 process_memory_ = process_memory; in SetProcessMemory()
|
H A D | RegsMips64.h | 39 bool SetPcFromReturnAddress(Memory* process_memory) override; 41 bool StepIfSignalHandler(uint64_t elf_offset, Elf* elf, Memory* process_memory) override;
|
H A D | RegsArm.h | 39 bool SetPcFromReturnAddress(Memory* process_memory) override; 41 bool StepIfSignalHandler(uint64_t elf_offset, Elf* elf, Memory* process_memory) override;
|
H A D | RegsMips.h | 39 bool SetPcFromReturnAddress(Memory* process_memory) override; 41 bool StepIfSignalHandler(uint64_t elf_offset, Elf* elf, Memory* process_memory) override;
|
H A D | RegsX86.h | 40 bool SetPcFromReturnAddress(Memory* process_memory) override; 42 bool StepIfSignalHandler(uint64_t elf_offset, Elf* elf, Memory* process_memory) override;
|
H A D | RegsX86_64.h | 40 bool SetPcFromReturnAddress(Memory* process_memory) override; 42 bool StepIfSignalHandler(uint64_t elf_offset, Elf* elf, Memory* process_memory) override;
|
H A D | RegsArm64.h | 40 bool SetPcFromReturnAddress(Memory* process_memory) override; 42 bool StepIfSignalHandler(uint64_t elf_offset, Elf* elf, Memory* process_memory) override;
|
H A D | MapInfo.h | 131 Elf* GetElf(const std::shared_ptr<Memory>& process_memory, ArchEnum expected_arch); 133 uint64_t GetLoadBias(const std::shared_ptr<Memory>& process_memory); 135 Memory* CreateMemory(const std::shared_ptr<Memory>& process_memory);
|
/aosp12/system/unwinding/libunwindstack/tests/ |
H A D | ElfTest.cpp | 319 MemoryFake process_memory; in VerifyStepIfSignalHandler() local 320 process_memory.SetData32(0x50000, 0); in VerifyStepIfSignalHandler() 322 process_memory.SetData32(0x500a0 + i * sizeof(uint32_t), i); in VerifyStepIfSignalHandler() 326 ASSERT_TRUE(elf.StepIfSignalHandler(0x3000 + load_bias, ®s, &process_memory)); in VerifyStepIfSignalHandler() 372 MemoryFake process_memory; in TEST_F() local 376 EXPECT_CALL(*interface, Step(0x1000, ®s, &process_memory, &finished, &is_signal_frame)) in TEST_F() 379 ASSERT_TRUE(elf.Step(0x1000, ®s, &process_memory, &finished, &is_signal_frame)); in TEST_F()
|
H A D | UnwindTest.cpp | 138 auto process_memory(Memory::CreateProcessMemory(pid)); in VerifyUnwind() local 140 Unwinder unwinder(512, maps, regs, process_memory); in VerifyUnwind() 180 auto process_memory(Memory::CreateProcessMemory(getpid())); in InnerFunction() local 181 unwinder.reset(new Unwinder(512, maps.get(), regs.get(), process_memory)); in InnerFunction() 462 auto process_memory(Memory::CreateProcessMemory(getpid())); in TEST_F() local 470 std::thread* thread = new std::thread([i, &frames, &maps, &process_memory, &wait]() { in TEST_F() 476 Unwinder unwinder(512, &maps, regs.get(), process_memory); in TEST_F()
|
/aosp12/system/unwinding/libbacktrace/ |
H A D | UnwindStack.cpp | 49 auto process_memory = stack_map->process_memory(); in Unwind() local 51 regs, stack_map->process_memory()); in Unwind()
|
/aosp12/system/unwinding/libunwindstack/tools/ |
H A D | unwind_for_offline.cpp | 102 auto process_memory = unwindstack::Memory::CreateProcessMemory(pid); in SaveStack() local 103 if (!process_memory->Read(sp_start, buffer.data(), buffer.size())) { in SaveStack() 215 void SaveMapInformation(std::shared_ptr<unwindstack::Memory>& process_memory, map_info_t* info, in SaveMapInformation() argument 224 if (CreateElfFromMemory(process_memory, info)) { in SaveMapInformation()
|