|
microfmt
Zero-allocation C++ formatting for constrained environments
|
Decoder executing DWARF CFI bytecode against an address space and selective register context. More...
#include <dwarf_decoder.hpp>
Classes | |
| struct | frame_state |
| struct | reg_location |
| struct | scratch_context |
Public Types | |
| enum class | reg_rule_type : uint8_t { unspecified , from_memory_cfa_offset , from_register } |
| Tracks location type for saved registers (Memory offset vs Live Register). More... | |
| using | register_type = typename AbiTraits::register_type |
Static Public Member Functions | |
| static bool | read_uleb128 (address_space_ref space, uintptr_t &addr, uint64_t &out_val) noexcept |
| static bool | read_sleb128 (address_space_ref space, uintptr_t &addr, int64_t &out_val) noexcept |
| template<size_t MaxStateStackDepth> | |
| static bool | execute_fde (register_context_ref reg_ctx, uintptr_t fde_addr, uintptr_t target_pc, uintptr_t &out_fp, uintptr_t &out_pc, scratch_context< MaxStateStackDepth > &scratch) noexcept |
| Executes FDE bytecode, selectively querying register_context_ref only when virtual registers are needed for CFA resolution or register-to-register mapping. | |
Static Public Attributes | |
| static constexpr uint8_t | DW_CFA_advance_loc = 0x40 |
| static constexpr uint8_t | DW_CFA_offset = 0x80 |
| static constexpr uint8_t | DW_CFA_restore = 0xC0 |
| static constexpr uint8_t | DW_CFA_nop = 0x00 |
| static constexpr uint8_t | DW_CFA_register = 0x09 |
| static constexpr uint8_t | DW_CFA_advance_loc1 = 0x02 |
| static constexpr uint8_t | DW_CFA_advance_loc2 = 0x03 |
| static constexpr uint8_t | DW_CFA_offset_extended = 0x05 |
| static constexpr uint8_t | DW_CFA_remember_state = 0x0A |
| static constexpr uint8_t | DW_CFA_restore_state = 0x0B |
| static constexpr uint8_t | DW_CFA_def_cfa = 0x0C |
| static constexpr uint8_t | DW_CFA_def_cfa_register = 0x0D |
| static constexpr uint8_t | DW_CFA_def_cfa_offset = 0x0E |
| static constexpr uint8_t | DW_CFA_offset_extended_sf = 0x11 |
| static constexpr uint8_t | DW_CFA_def_cfa_sf = 0x12 |
| static constexpr uint8_t | DW_CFA_def_cfa_offset_sf = 0x13 |
Decoder executing DWARF CFI bytecode against an address space and selective register context.
| AbiTraits | ABI traits describing registers for the target architecture. |
| using microfmt::dwarf_cfi_decoder< AbiTraits >::register_type = typename AbiTraits::register_type |
|
strong |
|
inlinestaticnoexcept |
Executes FDE bytecode, selectively querying register_context_ref only when virtual registers are needed for CFA resolution or register-to-register mapping.
|
inlinestaticnoexcept |
|
inlinestaticnoexcept |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |