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

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