| /system/unwinding/libunwindstack/benchmarks/ |
| D | local_unwind_benchmarks.cpp | 36 std::shared_ptr<unwindstack::Memory>& process_memory; member 73 unwindstack::Unwinder unwinder(kMaxFrames, data->maps, regs.get(), data->process_memory); in Unwind() 80 auto process_memory = unwindstack::Memory::CreateProcessMemory(getpid()); in BM_local_unwind_uncached_process_memory() local 86 UnwindData data = {.process_memory = process_memory, .maps = &maps, .resolve_names = true}; in BM_local_unwind_uncached_process_memory() 92 auto process_memory = unwindstack::Memory::CreateProcessMemoryCached(getpid()); in BM_local_unwind_cached_process_memory() local 98 UnwindData data = {.process_memory = process_memory, .maps = &maps, .resolve_names = true}; in BM_local_unwind_cached_process_memory() 104 auto process_memory = unwindstack::Memory::CreateProcessMemory(getpid()); in BM_local_android_unwind_uncached_process_memory() local 105 unwindstack::AndroidLocalUnwinder unwinder(process_memory); in BM_local_android_unwind_uncached_process_memory() 128 auto process_memory = unwindstack::Memory::CreateProcessMemoryCached(getpid()); in BM_local_android_unwind_cached_process_memory() local 129 unwindstack::AndroidLocalUnwinder unwinder(process_memory); in BM_local_android_unwind_cached_process_memory() [all …]
|
| D | remote_unwind_benchmarks.cpp | 103 std::shared_ptr<unwindstack::Memory> process_memory; in RemoteUnwind() local 105 process_memory = unwindstack::Memory::CreateProcessMemoryCached(pid); in RemoteUnwind() 107 process_memory = unwindstack::Memory::CreateProcessMemory(pid); in RemoteUnwind() 116 unwindstack::Unwinder unwinder(32, &maps, regs.get(), process_memory); in RemoteUnwind() 143 std::shared_ptr<unwindstack::Memory> process_memory; in RemoteAndroidUnwind() local 145 process_memory = unwindstack::Memory::CreateProcessMemoryCached(pid); in RemoteAndroidUnwind() 147 process_memory = unwindstack::Memory::CreateProcessMemory(pid); in RemoteAndroidUnwind() 149 unwindstack::AndroidRemoteUnwinder unwinder(pid, process_memory); in RemoteAndroidUnwind()
|
| /system/unwinding/libunwindstack/include/unwindstack/ |
| D | Unwinder.h | 56 Unwinder(size_t max_frames, Maps* maps, Regs* regs, std::shared_ptr<Memory> process_memory) in Unwinder() argument 60 process_memory_(process_memory), in Unwinder() 62 Unwinder(size_t max_frames, Maps* maps, std::shared_ptr<Memory> process_memory) in Unwinder() argument 63 : max_frames_(max_frames), maps_(maps), process_memory_(process_memory) {} in Unwinder() 119 std::shared_ptr<Memory> process_memory, bool resolve_names); 126 Unwinder(size_t max_frames, ArchEnum arch, Maps* maps, std::shared_ptr<Memory>& process_memory) in Unwinder() argument 127 : max_frames_(max_frames), maps_(maps), process_memory_(process_memory), arch_(arch) {} in Unwinder() 157 UnwinderFromPid(size_t max_frames, pid_t pid, std::shared_ptr<Memory>& process_memory) in UnwinderFromPid() argument 158 : Unwinder(max_frames, nullptr, process_memory), pid_(pid) {} in UnwinderFromPid() 162 std::shared_ptr<Memory>& process_memory) in UnwinderFromPid() argument [all …]
|
| D | RegsArm.h | 38 bool SetPcFromReturnAddress(Memory* process_memory) override; 40 bool StepIfSignalHandler(uint64_t elf_offset, Elf* elf, Memory* process_memory) override;
|
| D | RegsX86_64.h | 39 bool SetPcFromReturnAddress(Memory* process_memory) override; 41 bool StepIfSignalHandler(uint64_t elf_offset, Elf* elf, Memory* process_memory) override;
|
| D | RegsX86.h | 39 bool SetPcFromReturnAddress(Memory* process_memory) override; 41 bool StepIfSignalHandler(uint64_t elf_offset, Elf* elf, Memory* process_memory) override;
|
| D | RegsRiscv64.h | 39 bool SetPcFromReturnAddress(Memory* process_memory) override; 41 bool StepIfSignalHandler(uint64_t elf_offset, Elf* elf, Memory* process_memory) override;
|
| D | RegsArm64.h | 39 bool SetPcFromReturnAddress(Memory* process_memory) override; 41 bool StepIfSignalHandler(uint64_t elf_offset, Elf* elf, Memory* process_memory) override;
|
| D | AndroidUnwinder.h | 120 AndroidLocalUnwinder(std::shared_ptr<Memory>& process_memory) in AndroidLocalUnwinder() argument 121 : AndroidUnwinder(getpid(), process_memory) { in AndroidLocalUnwinder() 146 AndroidRemoteUnwinder(pid_t pid, std::shared_ptr<Memory>& process_memory) in AndroidRemoteUnwinder() argument 147 : AndroidUnwinder(pid, process_memory) {} in AndroidRemoteUnwinder()
|
| D | Elf.h | 57 bool StepIfSignalHandler(uint64_t rel_pc, Regs* regs, Memory* process_memory); 59 bool Step(uint64_t rel_pc, Regs* regs, Memory* process_memory, bool* finished,
|
| D | Regs.h | 74 virtual bool StepIfSignalHandler(uint64_t elf_offset, Elf* elf, Memory* process_memory) = 0; 76 virtual bool SetPcFromReturnAddress(Memory* process_memory) = 0;
|
| D | MapInfo.h | 180 Elf* GetElf(const std::shared_ptr<Memory>& process_memory, ArchEnum expected_arch); 186 uint64_t GetLoadBias(const std::shared_ptr<Memory>& process_memory); 195 std::shared_ptr<Memory> CreateMemory(const std::shared_ptr<Memory>& process_memory);
|
| /system/core/debuggerd/libdebuggerd/ |
| D | gwp_asan.cpp | 32 static bool retrieve_gwp_asan_state(unwindstack::Memory* process_memory, uintptr_t state_addr, in retrieve_gwp_asan_state() argument 34 return process_memory->ReadFully(state_addr, state, sizeof(*state)); in retrieve_gwp_asan_state() 43 unwindstack::Memory* process_memory, const gwp_asan::AllocatorState& state, in retrieve_gwp_asan_metadata() argument 58 if (!process_memory->ReadFully(metadata_addr, meta, in retrieve_gwp_asan_metadata() 70 GwpAsanCrashData::GwpAsanCrashData(unwindstack::Memory* process_memory, in GwpAsanCrashData() argument 72 if (!process_memory || !process_info.gwp_asan_metadata || !process_info.gwp_asan_state) return; in GwpAsanCrashData() 74 if (!retrieve_gwp_asan_state(process_memory, process_info.gwp_asan_state, &state_)) return; in GwpAsanCrashData() 75 …metadata_.reset(retrieve_gwp_asan_metadata(process_memory, state_, process_info.gwp_asan_metadata)… in GwpAsanCrashData()
|
| D | scudo.cpp | 32 std::unique_ptr<char[]> AllocAndReadFully(unwindstack::Memory* process_memory, uint64_t addr, in AllocAndReadFully() argument 35 if (!process_memory->ReadFully(addr, buf.get(), size)) { in AllocAndReadFully() 41 ScudoCrashData::ScudoCrashData(unwindstack::Memory* process_memory, in ScudoCrashData() argument 47 auto region_info = AllocAndReadFully(process_memory, process_info.scudo_region_info, in ScudoCrashData() 51 ring_buffer = AllocAndReadFully(process_memory, process_info.scudo_ring_buffer, in ScudoCrashData() 56 stack_depot = AllocAndReadFully(process_memory, process_info.scudo_stack_depot, in ScudoCrashData() 78 process_memory->ReadFully(i, memory.get() + i - memory_begin, getpagesize()); in ScudoCrashData() 83 memory_tags[(i - memory_begin) / kTagGranuleSize] = process_memory->ReadTag(i); in ScudoCrashData()
|
| D | tombstone_proto.cpp | 215 auto process_memory = unwinder->GetProcessMemory(); in dump_stack_history() local 218 if (!process_memory->ReadFully(target_tls, &stack_mte, sizeof(stack_mte))) { in dump_stack_history() 236 if (!process_memory->ReadFully(buf_start, buf.data(), buf.size())) { in dump_stack_history() 389 std::shared_ptr<unwindstack::Memory>& process_memory, in dump_crash_details() argument 394 if (!process_memory->ReadFully(address, &page, sizeof(page))) { in dump_crash_details() 408 if (!process_memory->ReadFully(reinterpret_cast<uintptr_t>(crash_detail.name), name.data(), in dump_crash_details() 414 if (!process_memory->ReadFully(reinterpret_cast<uintptr_t>(crash_detail.data), data.data(), in dump_crash_details() 429 std::shared_ptr<unwindstack::Memory>& process_memory, in dump_abort_message() argument 437 if (!process_memory->ReadFully(address, &length, sizeof(length))) { in dump_abort_message() 456 if (!process_memory->ReadFully(address + sizeof(length), &msg[0], length)) { in dump_abort_message() [all …]
|
| /system/unwinding/libunwindstack/ |
| D | MapInfo.cpp | 179 std::shared_ptr<Memory> MapInfo::CreateMemory(const std::shared_ptr<Memory>& process_memory) { in CreateMemory() argument 199 if (process_memory == nullptr) { in CreateMemory() 211 new MemoryRange(process_memory, start(), end() - start(), 0)); in CreateMemory() 229 ranges->Insert(new MemoryRange(process_memory, start(), end() - start(), 0)); in CreateMemory() 230 ranges->Insert(new MemoryRange(process_memory, next_real_map->start(), in CreateMemory() 256 if (!ranges->Insert(new MemoryRange(process_memory, prev_real_map->start(), in CreateMemory() 260 if (!ranges->Insert(new MemoryRange(process_memory, start(), end() - start(), elf_offset()))) { in CreateMemory() 276 Elf* MapInfo::GetElf(const std::shared_ptr<Memory>& process_memory, ArchEnum expected_arch) { in GetElf() argument 291 auto elf_memory = CreateMemory(process_memory); in GetElf() 366 uint64_t MapInfo::GetLoadBias(const std::shared_ptr<Memory>& process_memory) { in GetLoadBias() argument [all …]
|
| 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 135 if (!process_memory->ReadFully(regs_[X86_REG_SP] + 4, &context, sizeof(context))) { in StepIfSignalHandler() 160 if (!process_memory->ReadFully(regs_[X86_REG_SP] + 8, &ptr, sizeof(ptr))) { in StepIfSignalHandler() 165 if (!process_memory->ReadFully(ptr + 0x14, &x86_ucontext.uc_mcontext, sizeof(x86_mcontext_t))) { in StepIfSignalHandler()
|
| D | ElfInterfaceArm.cpp | 99 bool ElfInterfaceArm::Step(uint64_t pc, Regs* regs, Memory* process_memory, bool* finished, in Step() argument 105 return ElfInterface32::Step(pc, regs, process_memory, finished, is_signal_frame) || in Step() 106 StepExidx(pc, regs, process_memory, finished); in Step() 109 bool ElfInterfaceArm::StepExidx(uint64_t pc, Regs* regs, Memory* process_memory, bool* finished) { in StepExidx() argument 123 ArmExidx arm(regs_arm, memory_.get(), process_memory); in StepExidx()
|
| D | RegsArm.cpp | 99 bool RegsArm::StepIfSignalHandler(uint64_t elf_offset, Elf* elf, Memory* process_memory) { in StepIfSignalHandler() argument 123 if (!process_memory->ReadFully(sp, &data, sizeof(data))) { in StepIfSignalHandler() 148 if (!process_memory->ReadFully(sp, &data, sizeof(data))) { in StepIfSignalHandler() 163 if (!process_memory->ReadFully(offset, regs_.data(), sizeof(uint32_t) * ARM_REG_LAST)) { in StepIfSignalHandler()
|
| 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()
|
| D | ArmExidx.h | 55 ArmExidx(RegsArm* regs, Memory* elf_memory, Memory* process_memory) in ArmExidx() argument 56 : regs_(regs), elf_memory_(elf_memory), process_memory_(process_memory) {} in ArmExidx()
|
| D | ElfInterfaceArm.h | 82 bool Step(uint64_t pc, Regs* regs, Memory* process_memory, bool* finished, 85 bool StepExidx(uint64_t pc, Regs* regs, Memory* process_memory, bool* finished);
|
| D | Elf.cpp | 184 bool Elf::StepIfSignalHandler(uint64_t rel_pc, Regs* regs, Memory* process_memory) { in StepIfSignalHandler() argument 193 return regs->StepIfSignalHandler(rel_pc - load_bias_, this, process_memory); in StepIfSignalHandler() 197 bool Elf::Step(uint64_t rel_pc, Regs* regs, Memory* process_memory, bool* finished, in Step() argument 205 return interface_->Step(rel_pc, regs, process_memory, finished, is_signal_frame); in Step()
|
| /system/unwinding/libunwindstack/tests/ |
| D | MemoryRangeTest.cpp | 76 std::shared_ptr<Memory> process_memory(new MemoryFakeAlwaysReadZero); in TEST_F() local 77 std::unique_ptr<MemoryRange> overflow(new MemoryRange(process_memory, 100, 200, 0)); in TEST_F()
|
| D | ElfTest.cpp | 306 MemoryFake process_memory; in VerifyStepIfSignalHandler() local 307 process_memory.SetData32(0x50000, 0); in VerifyStepIfSignalHandler() 309 process_memory.SetData32(0x500a0 + i * sizeof(uint32_t), i); in VerifyStepIfSignalHandler() 313 ASSERT_TRUE(elf.StepIfSignalHandler(0x3000 + load_bias, ®s, &process_memory)); in VerifyStepIfSignalHandler() 359 MemoryFake process_memory; in TEST_F() local 363 EXPECT_CALL(*interface, Step(0x1000, ®s, &process_memory, &finished, &is_signal_frame)) in TEST_F() 366 ASSERT_TRUE(elf.Step(0x1000, ®s, &process_memory, &finished, &is_signal_frame)); in TEST_F()
|