class CfiParser

Defined at line 21 of file ../../src/lib/unwinder/cfi_parser.h

Parse the call frame instructions to get the locations of CFA and registers.

Public Methods

void Snapshot ()

Helper for DW_CFA_restore. This function should be called after CIE instructions are parsed but

before the FDE instructions are parsed.

Defined at line 33 of file ../../src/lib/unwinder/cfi_parser.h

void CfiParser (Registers::Arch arch, Module::AddressSize size, uint64_t code_alignment_factor, int64_t data_alignment_factor)

arch is needed to default initialize register_locations_.

Defined at line 38 of file ../../src/lib/unwinder/cfi_parser.cc

Error ParseInstructions (Memory * elf, uint64_t instructions_begin, uint64_t instructions_end, uint64_t pc_limit)

Parse the CFA instructions until the (relative) pc reaches pc_limit.

Defined at line 137 of file ../../src/lib/unwinder/cfi_parser.cc

Error Step (Memory * stack, RegisterID return_address_register, const Registers & current, Registers & next, std::optional<uint64_t> maybe_cfa)

Apply the frame info to unwind one frame. |maybe_cfa| can be supplied if |PrepareToStep| has

been called before this function, which is typically the case of the |AsyncStep| function

before fetching necessary memory ahead of calling this synchronous method.

Defined at line 470 of file ../../src/lib/unwinder/cfi_parser.cc

void AsyncStep (AsyncMemory * stack, RegisterID return_address_register, const Registers & current, fit::callback<void (Error, Registers)> cb)

Defined at line 560 of file ../../src/lib/unwinder/cfi_parser.cc