microfmt
Zero-allocation C++ formatting for constrained environments
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
microfmt::arm_exidx_unwinder_holder< AbiTraits > Struct Template Reference

Self-contained holder owning the EXIDX scratch storage. More...

#include <arm_exidx_unwinder.hpp>

Collaboration diagram for microfmt::arm_exidx_unwinder_holder< AbiTraits >:
Collaboration graph
[legend]

Public Member Functions

 arm_exidx_unwinder_holder (address_space_ref space, elf_image_enumerator_ref enumerator) noexcept
 Constructs a holder bound to an address space and enumerator.
 
 arm_exidx_unwinder_holder (const arm_exidx_unwinder_holder &)=delete
 Copying is disabled to ensure pointer stability.
 
arm_exidx_unwinder_holder & operator= (const arm_exidx_unwinder_holder &)=delete
 Copy-assignment is disabled to ensure pointer stability.
 
 arm_exidx_unwinder_holder (arm_exidx_unwinder_holder &&)=delete
 Moving is disabled to ensure pointer stability.
 
arm_exidx_unwinder_holder & operator= (arm_exidx_unwinder_holder &&)=delete
 Move-assignment is disabled to ensure pointer stability.
 
frame_unwinder_ref make_ref () &noexcept
 Builds a type-erased unwinder handle bound to this holder.
 

Public Attributes

elf_image_info img_storage {}
 Storage for the located ELF image.
 
arm_exidx_unwinder_context ctx
 Unwinder context referencing the owned storage.
 

Detailed Description

template<typename AbiTraits = arm_abi_traits>
struct microfmt::arm_exidx_unwinder_holder< AbiTraits >

Self-contained holder owning the EXIDX scratch storage.

Non-copyable/non-movable to guarantee stable interior pointers.

Template Parameters
AbiTraitsABI traits forwarded to arm_exidx_unwinder_tag; defaults to arm_abi_traits.

Constructor & Destructor Documentation

◆ arm_exidx_unwinder_holder() [1/3]

template<typename AbiTraits = arm_abi_traits>
microfmt::arm_exidx_unwinder_holder< AbiTraits >::arm_exidx_unwinder_holder ( address_space_ref  space,
elf_image_enumerator_ref  enumerator 
)
inlinenoexcept

Constructs a holder bound to an address space and enumerator.

Parameters
spaceAddress space to unwind in.
enumeratorELF image enumerator.

◆ arm_exidx_unwinder_holder() [2/3]

template<typename AbiTraits = arm_abi_traits>
microfmt::arm_exidx_unwinder_holder< AbiTraits >::arm_exidx_unwinder_holder ( const arm_exidx_unwinder_holder< AbiTraits > &  )
delete

Copying is disabled to ensure pointer stability.

◆ arm_exidx_unwinder_holder() [3/3]

template<typename AbiTraits = arm_abi_traits>
microfmt::arm_exidx_unwinder_holder< AbiTraits >::arm_exidx_unwinder_holder ( arm_exidx_unwinder_holder< AbiTraits > &&  )
delete

Moving is disabled to ensure pointer stability.

Member Function Documentation

◆ make_ref()

template<typename AbiTraits = arm_abi_traits>
frame_unwinder_ref microfmt::arm_exidx_unwinder_holder< AbiTraits >::make_ref ( ) &
inlinenoexcept

Builds a type-erased unwinder handle bound to this holder.

Returns
An frame_unwinder_ref over ctx.

◆ operator=() [1/2]

template<typename AbiTraits = arm_abi_traits>
arm_exidx_unwinder_holder & microfmt::arm_exidx_unwinder_holder< AbiTraits >::operator= ( arm_exidx_unwinder_holder< AbiTraits > &&  )
delete

Move-assignment is disabled to ensure pointer stability.

◆ operator=() [2/2]

template<typename AbiTraits = arm_abi_traits>
arm_exidx_unwinder_holder & microfmt::arm_exidx_unwinder_holder< AbiTraits >::operator= ( const arm_exidx_unwinder_holder< AbiTraits > &  )
delete

Copy-assignment is disabled to ensure pointer stability.

Member Data Documentation

◆ ctx

template<typename AbiTraits = arm_abi_traits>
arm_exidx_unwinder_context microfmt::arm_exidx_unwinder_holder< AbiTraits >::ctx

Unwinder context referencing the owned storage.

◆ img_storage

template<typename AbiTraits = arm_abi_traits>
elf_image_info microfmt::arm_exidx_unwinder_holder< AbiTraits >::img_storage {}

Storage for the located ELF image.


The documentation for this struct was generated from the following file: