Namespaces
Enumerations
enum RegisterID
| Name | Value |
|---|---|
| kX64_rax | 0 |
| kX64_rdx | 1 |
| kX64_rcx | 2 |
| kX64_rbx | 3 |
| kX64_rsi | 4 |
| kX64_rdi | 5 |
| kX64_rbp | 6 |
| kX64_rsp | 7 |
| kX64_r8 | 8 |
| kX64_r9 | 9 |
| kX64_r10 | 10 |
| kX64_r11 | 11 |
| kX64_r12 | 12 |
| kX64_r13 | 13 |
| kX64_r14 | 14 |
| kX64_r15 | 15 |
| kX64_rip | 16 |
| kX64_last | 17 |
| kArm64_x0 | 0 |
| kArm64_x1 | 1 |
| kArm64_x2 | 2 |
| kArm64_x3 | 3 |
| kArm64_x4 | 4 |
| kArm64_x5 | 5 |
| kArm64_x6 | 6 |
| kArm64_x7 | 7 |
| kArm64_x8 | 8 |
| kArm64_x9 | 9 |
| kArm64_x10 | 10 |
| kArm64_x11 | 11 |
| kArm64_x12 | 12 |
| kArm64_x13 | 13 |
| kArm64_x14 | 14 |
| kArm64_x15 | 15 |
| kArm64_x16 | 16 |
| kArm64_x17 | 17 |
| kArm64_x18 | 18 |
| kArm64_x19 | 19 |
| kArm64_x20 | 20 |
| kArm64_x21 | 21 |
| kArm64_x22 | 22 |
| kArm64_x23 | 23 |
| kArm64_x24 | 24 |
| kArm64_x25 | 25 |
| kArm64_x26 | 26 |
| kArm64_x27 | 27 |
| kArm64_x28 | 28 |
| kArm64_x29 | 29 |
| kArm64_x30 | 30 |
| kArm64_sp | 31 |
| kArm64_pc | 32 |
| kArm64_last | 33 |
| kArm64_lr | kArm64_x30 |
| kArm32_fp | kArm64_x11 |
| kArm32_sp | kArm64_x13 |
| kArm32_lr | kArm64_x14 |
| kArm32_pc | kArm64_x15 |
| kArm32_last | kArm64_x16 |
| kRiscv64_zero | 0 |
| kRiscv64_ra | 1 |
| kRiscv64_sp | 2 |
| kRiscv64_gp | 3 |
| kRiscv64_tp | 4 |
| kRiscv64_t0 | 5 |
| kRiscv64_t1 | 6 |
| kRiscv64_t2 | 7 |
| kRiscv64_s0 | 8 |
| kRiscv64_s1 | 9 |
| kRiscv64_a0 | 10 |
| kRiscv64_a1 | 11 |
| kRiscv64_a2 | 12 |
| kRiscv64_a3 | 13 |
| kRiscv64_a4 | 14 |
| kRiscv64_a5 | 15 |
| kRiscv64_a6 | 16 |
| kRiscv64_a7 | 17 |
| kRiscv64_s2 | 18 |
| kRiscv64_s3 | 19 |
| kRiscv64_s4 | 20 |
| kRiscv64_s5 | 21 |
| kRiscv64_s6 | 22 |
| kRiscv64_s7 | 23 |
| kRiscv64_s8 | 24 |
| kRiscv64_s9 | 25 |
| kRiscv64_s10 | 26 |
| kRiscv64_s11 | 27 |
| kRiscv64_t3 | 28 |
| kRiscv64_t4 | 29 |
| kRiscv64_t5 | 30 |
| kRiscv64_t6 | 31 |
| kRiscv64_last | 32 |
| kRiscv64_pc | 64 |
| kInvalid | static_cast<uint8_t>(-1) |
The DWARF ID for each register. It's NOT exhaustive and |Registers| class may store some register
ids not listed here.
Defined at line 18 of file ../../src/lib/unwinder/registers.h
enum UnwindTableSectionType
| Name | Value |
|---|---|
| kEhFrame | 1 |
| kDebugFrame | 4 |
Defined at line 21 of file ../../src/lib/unwinder/cfi_module.h
Records
-
class ArmEhAbiModule -
class ArmEhAbiModule_Search_Test -
class ArmEhAbiParser -
class ArmEhAbiParser_CollectInstructionsIndexInline_Test -
class ArmEhAbiParser_CollectInstructionsTableLookup_Test -
class ArmEhAbiUnwinder -
class AsyncMemory -
class AsyncUnwinder -
class CfiModule -
class CfiModuleInfo -
class CfiParser -
class CfiUnwinder -
class DwarfExpr -
class Error -
class FileMemory -
class Frame -
class FramePointerUnwinder -
class FuchsiaMemory -
class LinuxMemory -
class LocalMemory -
class Memory -
class Memory_ReadEncoded_Test -
class Memory_ReadSLEB128_Test -
class Memory_ReadULEB128_Test -
class Memory_Read_Test -
class Module -
class PltUnwinder -
class Registers -
class ShadowCallStackUnwinder -
class SigReturnUnwinder -
class UnavailableMemory -
class Unwinder -
class UnwinderBase
Functions
-
int CfiOnly (std::function<int ()> next)Defined at line 9 of file ../../src/lib/unwinder/tests/cfi_only.cc
-
int FpOnly (std::function<int ()> next)Defined at line 9 of file ../../src/lib/unwinder/tests/fp_only.cc
-
uint32_t SignExtendPrel31 (uint32_t data)Defined at line 14 of file ../../src/lib/unwinder/arm_ehabi_module.h
-
int32_t DecodePrel31 (uint32_t ptr)Defined at line 16 of file ../../src/lib/unwinder/arm_ehabi_module.h
-
Error Success ()Special way to create a non-error Error object.
Defined at line 34 of file ../../src/lib/unwinder/error.h
-
Registers FromFuchsiaRegisters (const zx_thread_state_general_regs_t & regs)Convert zx_thread_state_general_regs_t to Registers.
Defined at line 23 of file ../../src/lib/unwinder/fuchsia.cc
-
Registers FromPlatformRegisters (const PlatformRegisters & regs)Defined at line 26 of file ../../src/lib/unwinder/platform.h
-
Registers FromPlatformRegisters (const PlatformRegisters & regs)Defined at line 26 of file ../../src/lib/unwinder/platform.h
-
std::vector<Frame> UnwindLocal ()Unwind from the current location. The first frame in the returned value is the return address
of this function call. This function is not available on macOS.
Defined at line 40 of file ../../src/lib/unwinder/unwind_local.cc
-
void UnwindLocalAsync (Memory * local_memory, AsyncMemory::Delegate * delegate, fit::callback<void (std::vector<Frame>)> on_done)Asynchronous version of the above.
Defined at line 52 of file ../../src/lib/unwinder/unwind_local.cc
-
Registers FromLinuxRegisters (const struct user_regs_struct & regs)Convert user_regs_struct to Registers.
Defined at line 31 of file ../../src/lib/unwinder/linux.cc
-
std::vector<Frame> Unwind (Memory * memory, const std::vector<uint64_t> & modules, const Registers & registers, size_t max_depth)Unwind with given memory, modules, and registers.
This provides an simplified API than the above Unwinder class but comes without a cache.
The modules are provided as base addresses and are accessed through the memory.
Defined at line 370 of file ../../src/lib/unwinder/unwind.cc
-
void AsmGetRegs (void * regs) -
int ScsOnly (std::function<int ()> next)Defined at line 9 of file ../../src/lib/unwinder/tests/scs_only.cc
-
Registers GetContext ()Defined at line 123 of file ../../src/lib/unwinder/third_party/libunwindstack/context.h