microfmt
Zero-allocation C++ formatting for constrained environments
Loading...
Searching...
No Matches
Classes | Namespaces | Functions
dwarf_abi.hpp File Reference

Per-architecture ABI traits describing registers used during DWARF unwinding. More...

#include "dwarf_registers.hpp"
#include "gdb_registers.hpp"
#include "register_context.hpp"
#include <cstddef>
#include <cstdint>
#include <type_traits>
#include <utility>
Include dependency graph for dwarf_abi.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  microfmt::arm_abi_traits
 DWARF unwind ABI traits for ARM / Thumb (32-bit EABI). More...
 
struct  microfmt::aarch64_abi_traits
 DWARF unwind ABI traits for AArch64 (64-bit ARM). More...
 
struct  microfmt::riscv32_abi_traits
 DWARF unwind ABI traits for RISC-V 32-bit (RV32). More...
 
struct  microfmt::riscv64_abi_traits
 DWARF unwind ABI traits for RISC-V 64-bit (RV64). More...
 
struct  microfmt::x86_abi_traits
 DWARF unwind ABI traits for x86 (32-bit IA-32). More...
 
struct  microfmt::x86_64_abi_traits
 DWARF unwind ABI traits for x86-64 (AMD64 / x86_64). More...
 
struct  microfmt::detail::has_resolve_fp_reg< AbiTraits, typename >
 
struct  microfmt::detail::has_resolve_fp_reg< AbiTraits, std::void_t< decltype(AbiTraits::resolve_fp_reg(std::declval< register_context_ref >()))> >
 
struct  microfmt::detail::has_resolve_frame_slot_offsets< AbiTraits, typename >
 
struct  microfmt::detail::has_resolve_frame_slot_offsets< AbiTraits, std::void_t< decltype(AbiTraits::resolve_frame_slot_offsets(std::declval< register_context_ref >(), std::declval< ptrdiff_t & >(), std::declval< ptrdiff_t & >()))> >
 
struct  microfmt::validate_abi_traits< Traits >
 

Namespaces

namespace  microfmt
 
namespace  microfmt::detail
 

Functions

template<typename AbiTraits >
uint32_t microfmt::resolve_fp_register (register_context_ref reg_ctx) noexcept
 Resolves the frame-pointer register to use for AbiTraits.
 
template<typename AbiTraits >
bool microfmt::resolve_frame_slot_offsets (register_context_ref reg_ctx, ptrdiff_t &out_fp_slot_offset, ptrdiff_t &out_ra_slot_offset) noexcept
 Resolves the FP-relative saved-FP/saved-RA slot offsets to use for AbiTraits's naive FP-chain walking (fp_unwinder_tag).
 

Detailed Description

Per-architecture ABI traits describing registers used during DWARF unwinding.