/system/core/libunwindstack/benchmarks/ |
D | unwind_benchmarks.cpp | 32 size_t Call6(std::shared_ptr<unwindstack::Memory>& process_memory, unwindstack::Maps* maps) { in Call6() argument 35 unwindstack::Unwinder unwinder(32, maps, regs.get(), process_memory); in Call6() 40 size_t Call5(std::shared_ptr<unwindstack::Memory>& process_memory, unwindstack::Maps* maps) { in Call5() argument 41 return Call6(process_memory, maps); in Call5() 44 size_t Call4(std::shared_ptr<unwindstack::Memory>& process_memory, unwindstack::Maps* maps) { in Call4() argument 45 return Call5(process_memory, maps); in Call4() 48 size_t Call3(std::shared_ptr<unwindstack::Memory>& process_memory, unwindstack::Maps* maps) { in Call3() argument 49 return Call4(process_memory, maps); in Call3() 52 size_t Call2(std::shared_ptr<unwindstack::Memory>& process_memory, unwindstack::Maps* maps) { in Call2() argument 53 return Call3(process_memory, maps); in Call2() [all …]
|
/system/core/libunwindstack/ |
D | MapInfo.cpp | 133 Memory* MapInfo::CreateMemory(const std::shared_ptr<Memory>& process_memory) { in CreateMemory() argument 153 if (process_memory == nullptr) { in CreateMemory() 162 std::unique_ptr<MemoryRange> memory(new MemoryRange(process_memory, start, end - start, 0)); in CreateMemory() 185 new MemoryRange(process_memory, prev_map->start, prev_map->end - prev_map->start, 0)); in CreateMemory() 186 ranges->Insert(new MemoryRange(process_memory, start, end - start, elf_offset)); in CreateMemory() 192 Elf* MapInfo::GetElf(const std::shared_ptr<Memory>& process_memory, ArchEnum expected_arch) { in GetElf() argument 211 Memory* memory = CreateMemory(process_memory); in GetElf() 261 uint64_t MapInfo::GetLoadBias(const std::shared_ptr<Memory>& process_memory) { in GetLoadBias() argument 284 std::unique_ptr<Memory> memory(CreateMemory(process_memory)); in GetLoadBias()
|
D | RegsX86.cpp | 60 bool RegsX86::SetPcFromReturnAddress(Memory* process_memory) { in SetPcFromReturnAddress() argument 63 if (!process_memory->ReadFully(regs_[X86_REG_SP], &new_pc, sizeof(new_pc)) || in SetPcFromReturnAddress() 122 bool RegsX86::StepIfSignalHandler(uint64_t rel_pc, Elf* elf, Memory* process_memory) { in StepIfSignalHandler() argument 143 if (!process_memory->ReadFully(regs_[X86_REG_SP] + 4, &context, sizeof(context))) { in StepIfSignalHandler() 168 if (!process_memory->ReadFully(regs_[X86_REG_SP] + 8, &ptr, sizeof(ptr))) { in StepIfSignalHandler() 173 if (!process_memory->ReadFully(ptr + 0x14, &x86_ucontext.uc_mcontext, sizeof(x86_mcontext_t))) { in StepIfSignalHandler()
|
D | ElfInterfaceArm.cpp | 103 bool ElfInterfaceArm::Step(uint64_t pc, Regs* regs, Memory* process_memory, bool* finished) { in Step() argument 108 return ElfInterface32::Step(pc, regs, process_memory, finished) || in Step() 109 StepExidx(pc, regs, process_memory, finished); in Step() 112 bool ElfInterfaceArm::StepExidx(uint64_t pc, Regs* regs, Memory* process_memory, bool* finished) { in StepExidx() argument 126 ArmExidx arm(regs_arm, memory_, process_memory); in StepExidx()
|
D | RegsArm.cpp | 130 bool RegsArm::StepIfSignalHandler(uint64_t rel_pc, Elf* elf, Memory* process_memory) { in StepIfSignalHandler() argument 155 if (!process_memory->ReadFully(sp, &data, sizeof(data))) { in StepIfSignalHandler() 180 if (!process_memory->ReadFully(sp, &data, sizeof(data))) { in StepIfSignalHandler() 195 if (!process_memory->ReadFully(offset, regs_.data(), sizeof(uint32_t) * ARM_REG_LAST)) { in StepIfSignalHandler()
|
D | RegsX86_64.cpp | 61 bool RegsX86_64::SetPcFromReturnAddress(Memory* process_memory) { in SetPcFromReturnAddress() argument 64 if (!process_memory->ReadFully(regs_[X86_64_REG_SP], &new_pc, sizeof(new_pc)) || in SetPcFromReturnAddress() 142 bool RegsX86_64::StepIfSignalHandler(uint64_t rel_pc, Elf* elf, Memory* process_memory) { in StepIfSignalHandler() argument 164 if (!process_memory->ReadFully(regs_[X86_64_REG_SP] + 0x28, &x86_64_ucontext.uc_mcontext, in StepIfSignalHandler()
|
D | RegsMips64.cpp | 130 bool RegsMips64::StepIfSignalHandler(uint64_t rel_pc, Elf* elf, Memory* process_memory) { in StepIfSignalHandler() argument 151 if (!process_memory->Read(sp + 24 + 128 + 40, regs_.data(), in StepIfSignalHandler() 158 if (!process_memory->Read(sp + 24 + 128 + 40 + 576, ®s_[MIPS64_REG_PC], sizeof(uint64_t))) { in StepIfSignalHandler()
|
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()
|
D | ElfInterfaceArm.h | 75 bool Step(uint64_t pc, Regs* regs, Memory* process_memory, bool* finished) override; 77 bool StepExidx(uint64_t pc, Regs* regs, Memory* process_memory, bool* finished);
|
D | Elf.cpp | 174 bool Elf::StepIfSignalHandler(uint64_t rel_pc, Regs* regs, Memory* process_memory) { in StepIfSignalHandler() argument 178 return regs->StepIfSignalHandler(rel_pc, this, process_memory); in StepIfSignalHandler() 182 bool Elf::Step(uint64_t rel_pc, Regs* regs, Memory* process_memory, bool* finished) { in Step() argument 189 return interface_->Step(rel_pc, regs, process_memory, finished); in Step()
|
D | RegsArm64.cpp | 127 bool RegsArm64::StepIfSignalHandler(uint64_t rel_pc, Elf* elf, Memory* process_memory) { in StepIfSignalHandler() argument 145 if (!process_memory->ReadFully(regs_[ARM64_REG_SP] + 0x80 + 0xb0 + 0x08, regs_.data(), in StepIfSignalHandler()
|
/system/core/libunwindstack/include/unwindstack/ |
D | MapInfo.h | 82 Elf* GetElf(const std::shared_ptr<Memory>& process_memory, ArchEnum expected_arch); 84 uint64_t GetLoadBias(const std::shared_ptr<Memory>& process_memory); 86 Memory* CreateMemory(const std::shared_ptr<Memory>& process_memory);
|
D | Unwinder.h | 66 Unwinder(size_t max_frames, Maps* maps, Regs* regs, std::shared_ptr<Memory> process_memory) in Unwinder() argument 67 : max_frames_(max_frames), maps_(maps), regs_(regs), process_memory_(process_memory) { in Unwinder() 70 Unwinder(size_t max_frames, Maps* maps, std::shared_ptr<Memory> process_memory) in Unwinder() argument 71 : max_frames_(max_frames), maps_(maps), process_memory_(process_memory) { in Unwinder()
|
D | RegsMips.h | 41 bool SetPcFromReturnAddress(Memory* process_memory) override; 43 bool StepIfSignalHandler(uint64_t rel_pc, Elf* elf, Memory* process_memory) override;
|
D | RegsArm64.h | 41 bool SetPcFromReturnAddress(Memory* process_memory) override; 43 bool StepIfSignalHandler(uint64_t rel_pc, Elf* elf, Memory* process_memory) override;
|
D | RegsArm.h | 41 bool SetPcFromReturnAddress(Memory* process_memory) override; 43 bool StepIfSignalHandler(uint64_t rel_pc, Elf* elf, Memory* process_memory) override;
|
D | RegsMips64.h | 41 bool SetPcFromReturnAddress(Memory* process_memory) override; 43 bool StepIfSignalHandler(uint64_t rel_pc, Elf* elf, Memory* process_memory) override;
|
D | RegsX86_64.h | 42 bool SetPcFromReturnAddress(Memory* process_memory) override; 44 bool StepIfSignalHandler(uint64_t rel_pc, Elf* elf, Memory* process_memory) override;
|
D | RegsX86.h | 42 bool SetPcFromReturnAddress(Memory* process_memory) override; 44 bool StepIfSignalHandler(uint64_t rel_pc, Elf* elf, Memory* process_memory) override;
|
D | Regs.h | 69 virtual bool StepIfSignalHandler(uint64_t rel_pc, Elf* elf, Memory* process_memory) = 0; 71 virtual bool SetPcFromReturnAddress(Memory* process_memory) = 0;
|
D | Elf.h | 70 bool StepIfSignalHandler(uint64_t rel_pc, Regs* regs, Memory* process_memory); 72 bool Step(uint64_t rel_pc, Regs* regs, Memory* process_memory, bool* finished);
|
/system/core/libunwindstack/tests/ |
D | UnwindTest.cpp | 131 auto process_memory(Memory::CreateProcessMemory(pid)); in VerifyUnwind() local 133 Unwinder unwinder(512, maps, regs, process_memory); in VerifyUnwind() 169 auto process_memory(Memory::CreateProcessMemory(getpid())); in InnerFunction() local 170 unwinder.reset(new Unwinder(512, maps.get(), regs.get(), process_memory)); in InnerFunction() 451 auto process_memory(Memory::CreateProcessMemory(getpid())); in TEST_F() local 459 std::thread* thread = new std::thread([i, &frames, &maps, &process_memory, &wait]() { in TEST_F() 465 Unwinder unwinder(512, &maps, regs.get(), process_memory); in TEST_F()
|
D | MemoryRangeTest.cpp | 77 std::shared_ptr<Memory> process_memory(new MemoryFakeAlwaysReadZero); in TEST_F() local 78 std::unique_ptr<MemoryRange> overflow(new MemoryRange(process_memory, 100, 200, 0)); in TEST_F()
|
D | ElfTest.cpp | 295 MemoryFake process_memory; in TEST_F() local 296 process_memory.SetData32(0x50000, 0); in TEST_F() 298 process_memory.SetData32(0x500a0 + i * sizeof(uint32_t), i); in TEST_F() 302 ASSERT_TRUE(elf.StepIfSignalHandler(0x3000, ®s, &process_memory)); in TEST_F() 336 MemoryFake process_memory; in TEST_F() local 339 EXPECT_CALL(*interface, Step(0x1000, ®s, &process_memory, &finished)) in TEST_F() 342 ASSERT_TRUE(elf.Step(0x1000, ®s, &process_memory, &finished)); in TEST_F()
|
/system/core/libunwindstack/tools/ |
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()
|