| 117 | } |
| 118 | |
| 119 | void ProcessReaderLinux::Thread::InitializeStack(ProcessReaderLinux* reader) { |
| 120 | LinuxVMAddress stack_pointer; |
| 121 | #if defined(ARCH_CPU_X86_FAMILY) |
| 122 | stack_pointer = reader->Is64Bit() ? thread_info.thread_context.t64.rsp |
| 123 | : thread_info.thread_context.t32.esp; |
| 124 | #elif defined(ARCH_CPU_ARM_FAMILY) |
| 125 | stack_pointer = reader->Is64Bit() ? thread_info.thread_context.t64.sp |
| 126 | : thread_info.thread_context.t32.sp; |
| 127 | #elif defined(ARCH_CPU_MIPS_FAMILY) |
| 128 | stack_pointer = reader->Is64Bit() ? thread_info.thread_context.t64.regs[29] |
| 129 | : thread_info.thread_context.t32.regs[29]; |
| 130 | #elif defined(ARCH_CPU_RISCV64) |
| 131 | stack_pointer = thread_info.thread_context.t64.regs[1]; |
| 132 | #else |
| 133 | #error Port. |
| 134 | #endif |
| 135 | InitializeStackFromSP(reader, stack_pointer); |
| 136 | } |
| 137 | |
| 138 | void ProcessReaderLinux::Thread::InitializeStackFromSP( |
| 139 | ProcessReaderLinux* reader, |
no test coverage detected