/system/core/libunwindstack/include/unwindstack/ |
H A D | RegsGetLocal.h | 36 inline __always_inline void RegsGetLocal(Regs* regs) { argument 37 void* reg_data = regs->RawData(); 58 inline __always_inline void RegsGetLocal(Regs* regs) { 59 void* reg_data = regs->RawData(); 88 extern "C" void AsmGetRegs(void* regs); 90 inline void RegsGetLocal(Regs* regs) { 91 AsmGetRegs(regs->RawData());
|
H A D | UserArm.h | 35 uint32_t regs[18]; member in struct:unwindstack::arm_user_regs
|
H A D | UserArm64.h | 35 uint64_t regs[31]; member in struct:unwindstack::arm64_user_regs
|
H A D | UserMips.h | 40 uint32_t regs[45]; member in struct:unwindstack::mips_user_regs
|
H A D | UserMips64.h | 40 uint64_t regs[45]; member in struct:unwindstack::mips64_user_regs
|
H A D | UcontextArm.h | 48 uint32_t regs[ARM_REG_LAST]; // unsigned long member in struct:unwindstack::arm_mcontext_t
|
/system/core/libunwindstack/tests/ |
H A D | RegsStepIfSignalHandlerTest.cpp | 56 RegsArm regs; local 57 regs[ARM_REG_PC] = 0x5000; 58 regs[ARM_REG_SP] = addr; 66 ASSERT_TRUE(regs.StepIfSignalHandler(0x5000, elf_.get(), &process_memory_)); 67 EXPECT_EQ(0x100U, regs[ARM_REG_SP]); 68 EXPECT_EQ(0x120U, regs[ARM_REG_PC]); 69 EXPECT_EQ(0x100U, regs.sp()); 70 EXPECT_EQ(0x120U, regs.pc()); 86 RegsArm regs; local 87 regs[ARM_REG_P 116 RegsArm64 regs; local 135 RegsX86 regs; local 158 RegsX86 regs; local 186 RegsX86_64 regs; local 206 RegsMips regs; local 225 RegsMips regs; local 244 RegsMips64 regs; local [all...] |
H A D | DwarfSectionImplTest.cpp | 95 RegsImplFake<TypeParam> regs(10); 98 regs.set_pc(0x100); 99 regs.set_sp(0x2000); 100 regs[5] = 0x20; 101 regs[9] = 0x3000; 104 ASSERT_FALSE(this->section_->Eval(&cie, &this->memory_, loc_regs, ®s, &finished)); 111 RegsImplFake<TypeParam> regs(10); 114 regs.set_pc(0x100); 115 regs.set_sp(0x2000); 116 regs[ [all...] |
H A D | ElfInterfaceArmTest.cpp | 314 RegsArm regs; local 315 regs[ARM_REG_SP] = 0x1000; 316 regs[ARM_REG_LR] = 0x20000; 317 regs.set_sp(regs[ARM_REG_SP]); 318 regs.set_pc(0x1234); 319 ASSERT_FALSE(interface.StepExidx(0x7000, 0, ®s, &process_memory_, &finished)); 325 ASSERT_FALSE(interface.StepExidx(0x7000, 0, ®s, &process_memory_, &finished)); 330 ASSERT_TRUE(interface.StepExidx(0x7000, 0, ®s, &process_memory_, &finished)); 333 ASSERT_EQ(0x1000U, regs 357 RegsArm regs; local 382 RegsArm regs; local 405 RegsArm regs; local 432 RegsArm regs; local [all...] |
H A D | UnwindTest.cpp | 102 static void VerifyUnwind(pid_t pid, Maps* maps, Regs* regs, argument 106 Unwinder unwinder(512, maps, regs, process_memory); 131 std::unique_ptr<Regs> regs(Regs::CreateFromLocal()); 132 RegsGetLocal(regs.get()); 134 VerifyUnwind(getpid(), &maps, regs.get(), kFunctionOrder); 208 std::unique_ptr<Regs> regs(Regs::RemoteGet(pid)); 209 ASSERT_TRUE(regs.get() != nullptr); 211 VerifyUnwind(pid, &maps, regs.get(), kFunctionOrder); 253 std::unique_ptr<Regs> regs(Regs::CreateFromUcontext(Regs::CurrentArch(), ucontext)); 255 VerifyUnwind(getpid(), &maps, regs [all...] |
H A D | RegsTest.cpp | 217 uint32_t* regs = reinterpret_cast<uint32_t*>(arm.RawData()); local 218 regs[13] = 0x100; 219 regs[15] = 0x200; 226 uint64_t* regs = reinterpret_cast<uint64_t*>(arm64.RawData()); local 227 regs[31] = 0xb100000000ULL; 228 regs[32] = 0xc200000000ULL; 235 uint32_t* regs = reinterpret_cast<uint32_t*>(x86.RawData()); local 236 regs[4] = 0x23450000; 237 regs[8] = 0xabcd0000; 244 uint64_t* regs local 253 uint32_t* regs = reinterpret_cast<uint32_t*>(mips.RawData()); local 262 uint64_t* regs = reinterpret_cast<uint64_t*>(mips64.RawData()); local 290 clone_test(Regs* regs) argument 307 std::vector<std::unique_ptr<Regs>> regs; local [all...] |
H A D | ArmExidxDecodeTest.cpp | 191 ASSERT_EQ(0x10U, (*exidx_->regs())[15]); 212 ASSERT_EQ(0x20U, (*exidx_->regs())[4]); 213 ASSERT_EQ(0x21U, (*exidx_->regs())[5]); 214 ASSERT_EQ(0x22U, (*exidx_->regs())[6]); 215 ASSERT_EQ(0x23U, (*exidx_->regs())[7]); 216 ASSERT_EQ(0x24U, (*exidx_->regs())[8]); 217 ASSERT_EQ(0x25U, (*exidx_->regs())[9]); 218 ASSERT_EQ(0x26U, (*exidx_->regs())[10]); 219 ASSERT_EQ(0x27U, (*exidx_->regs())[11]); 220 ASSERT_EQ(0x28U, (*exidx_->regs())[1 [all...] |
/system/core/libunwindstack/ |
H A D | RegsInfo.h | 28 RegsInfo(RegsImpl<AddressType>* regs) : regs(regs) {} argument 30 RegsImpl<AddressType>* regs = nullptr; member in struct:unwindstack::RegsInfo 38 return (*regs)[reg]; 48 saved_regs[reg] = (*regs)[reg]; 49 return &(*regs)[reg]; 61 inline uint16_t Total() { return regs->total_regs(); }
|
H A D | RegsX86_64.cpp | 95 RegsX86_64* regs = new RegsX86_64(); local 96 (*regs)[X86_64_REG_RAX] = user->rax; 97 (*regs)[X86_64_REG_RBX] = user->rbx; 98 (*regs)[X86_64_REG_RCX] = user->rcx; 99 (*regs)[X86_64_REG_RDX] = user->rdx; 100 (*regs)[X86_64_REG_R8] = user->r8; 101 (*regs)[X86_64_REG_R9] = user->r9; 102 (*regs)[X86_64_REG_R10] = user->r10; 103 (*regs)[X86_64_REG_R11] = user->r11; 104 (*regs)[X86_64_REG_R1 136 RegsX86_64* regs = new RegsX86_64(); local [all...] |
H A D | RegsX86.cpp | 87 RegsX86* regs = new RegsX86(); local 88 (*regs)[X86_REG_EAX] = user->eax; 89 (*regs)[X86_REG_EBX] = user->ebx; 90 (*regs)[X86_REG_ECX] = user->ecx; 91 (*regs)[X86_REG_EDX] = user->edx; 92 (*regs)[X86_REG_EBP] = user->ebp; 93 (*regs)[X86_REG_EDI] = user->edi; 94 (*regs)[X86_REG_ESI] = user->esi; 95 (*regs)[X86_REG_ESP] = user->esp; 96 (*regs)[X86_REG_EI 117 RegsX86* regs = new RegsX86(); local [all...] |
H A D | Regs.cpp | 113 Regs* regs; local 115 regs = new RegsArm(); 117 regs = new RegsArm64(); 119 regs = new RegsX86(); 121 regs = new RegsX86_64(); 123 regs = new RegsMips(); 125 regs = new RegsMips64(); 129 return regs;
|
H A D | RegsMips.cpp | 110 RegsMips* regs = new RegsMips(); local 111 uint32_t* reg_data = reinterpret_cast<uint32_t*>(regs->RawData()); 113 memcpy(regs->RawData(), &user->regs[MIPS32_EF_R0], (MIPS_REG_R31 + 1) * sizeof(uint32_t)); 115 reg_data[MIPS_REG_PC] = user->regs[MIPS32_EF_CP0_EPC]; 116 return regs; 122 RegsMips* regs = new RegsMips(); local 123 // Copy 64 bit sc_regs over to 32 bit regs 125 (*regs)[MIPS_REG_R0 + i] = mips_ucontext->uc_mcontext.sc_regs[i]; 127 (*regs)[MIPS_REG_P [all...] |
H A D | RegsMips64.cpp | 110 RegsMips64* regs = new RegsMips64(); local 111 uint64_t* reg_data = reinterpret_cast<uint64_t*>(regs->RawData()); 113 memcpy(regs->RawData(), &user->regs[MIPS64_EF_R0], (MIPS64_REG_R31 + 1) * sizeof(uint64_t)); 115 reg_data[MIPS64_REG_PC] = user->regs[MIPS64_EF_CP0_EPC]; 116 return regs; 122 RegsMips64* regs = new RegsMips64(); local 123 // Copy 64 bit sc_regs over to 64 bit regs 124 memcpy(regs->RawData(), &mips64_ucontext->uc_mcontext.sc_regs[0], 32 * sizeof(uint64_t)); 125 (*regs)[MIPS64_REG_P [all...] |
H A D | RegsArm64.cpp | 110 RegsArm64* regs = new RegsArm64(); local 111 memcpy(regs->RawData(), &user->regs[0], (ARM64_REG_R31 + 1) * sizeof(uint64_t)); 112 uint64_t* reg_data = reinterpret_cast<uint64_t*>(regs->RawData()); 115 return regs; 121 RegsArm64* regs = new RegsArm64(); local 122 memcpy(regs->RawData(), &arm64_ucontext->uc_mcontext.regs[0], ARM64_REG_LAST * sizeof(uint64_t)); 123 return regs;
|
H A D | RegsArm.cpp | 116 RegsArm* regs = new RegsArm(); local 117 memcpy(regs->RawData(), &user->regs[0], ARM_REG_LAST * sizeof(uint32_t)); 118 return regs; 124 RegsArm* regs = new RegsArm(); local 125 memcpy(regs->RawData(), &arm_ucontext->uc_mcontext.regs[0], ARM_REG_LAST * sizeof(uint32_t)); 126 return regs;
|
H A D | ArmExidx.h | 49 ArmExidx(RegsArm* regs, Memory* elf_memory, Memory* process_memory) argument 50 : regs_(regs), elf_memory_(elf_memory), process_memory_(process_memory) {} 66 RegsArm* regs() { return regs_; } function in class:unwindstack::ArmExidx
|
/system/extras/simpleperf/ |
H A D | OfflineUnwinder.cpp | 43 static unwindstack::Regs* GetBacktraceRegs(const RegSet& regs) { argument 44 switch (regs.arch) { 53 arm_user_regs.regs[i] = static_cast<uint32_t>(regs.data[i]); 64 memcpy(&arm64_user_regs.regs[unwindstack::ARM64_REG_R0], ®s.data[PERF_REG_ARM64_X0], 66 arm64_user_regs.sp = regs.data[PERF_REG_ARM64_SP]; 67 arm64_user_regs.pc = regs.data[PERF_REG_ARM64_PC]; 73 x86_user_regs.eax = static_cast<uint32_t>(regs.data[PERF_REG_X86_AX]); 74 x86_user_regs.ebx = static_cast<uint32_t>(regs 115 UnwindCallChain(const ThreadEntry& thread, const RegSet& regs, const char* stack, size_t stack_size, std::vector<uint64_t>* ips, std::vector<uint64_t>* sps) argument [all...] |
/system/core/libunwindstack/tools/ |
H A D | unwind.cpp | 61 unwindstack::Regs* regs = unwindstack::Regs::RemoteGet(pid); local 62 if (regs == nullptr) { 68 switch (regs->Arch()) { 94 unwindstack::Unwinder unwinder(128, &remote_maps, regs, process_memory); 97 unwinder.SetJitDebug(&jit_debug, regs->Arch()); 100 unwinder.SetDexFiles(&dex_files, regs->Arch());
|
/system/core/libbacktrace/ |
H A D | UnwindStack.cpp | 48 bool Backtrace::Unwind(unwindstack::Regs* regs, BacktraceMap* back_map, argument 54 regs, stack_map->process_memory()); 57 unwinder.SetJitDebug(stack_map->GetJitDebug(), regs->Arch()); 61 unwinder.SetDexFiles(stack_map->GetDexFiles(), regs->Arch()); 131 bool Backtrace::UnwindOffline(unwindstack::Regs* regs, BacktraceMap* back_map, argument 144 return Backtrace::Unwind(regs, back_map, frames, 0U, nullptr, error); 155 std::unique_ptr<unwindstack::Regs> regs; local 157 regs.reset(unwindstack::Regs::CreateFromLocal()); 160 unwindstack::RegsGetLocal(regs.get()); 162 regs 180 std::unique_ptr<unwindstack::Regs> regs; local [all...] |
H A D | backtrace_testlib.cpp | 82 std::unique_ptr<unwindstack::Regs> regs(unwindstack::Regs::CreateFromLocal()); 83 unwindstack::RegsGetLocal(regs.get()); 88 memcpy(&ucontext.uc_mcontext, regs->RawData(), sizeof(uint32_t) * 16); 90 memcpy(&ucontext.uc_mcontext, regs->RawData(), sizeof(uint64_t) * 33); 92 uint32_t* reg_data = reinterpret_cast<uint32_t*>(regs->RawData()); 108 uint64_t* reg_data = reinterpret_cast<uint64_t*>(regs->RawData());
|