Forward-only cursor iterating over a stack walk backed by register context.
More...
#include <frame_pointer.hpp>
Forward-only cursor iterating over a stack walk backed by register context.
◆ frame_pointer_iterator() [1/2]
| constexpr microfmt::frame_pointer_iterator::frame_pointer_iterator |
( |
| ) |
|
|
constexprdefaultnoexcept |
◆ frame_pointer_iterator() [2/2]
Constructs an iterator rooted at the given frame and register context.
initial_pc is tracked internally and fed back into the unwinder's step() on every call, purely to let the backend look up the unwind descriptor covering the current frame (.ARM.exidx entry, DWARF FDE, unwind hint, ...). Callers do not need to pre-seed any register (e.g. the link register) with the crash/current PC before iterating; reg_ctx only needs to reflect the real register values of the frame being unwound.
◆ for_each_frame()
template<typename Visitor >
| void microfmt::frame_pointer_iterator::for_each_frame |
( |
Visitor && |
visitor, |
|
|
uint32_t |
max_depth = 64 |
|
) |
| |
|
inlinenoexcept |
◆ has_value()
| constexpr bool microfmt::frame_pointer_iterator::has_value |
( |
| ) |
const |
|
inlineconstexprnoexcept |
◆ next()
| bool microfmt::frame_pointer_iterator::next |
( |
| ) |
|
|
inlinenoexcept |
Steps to the next (caller) frame using the unwinder and register context.
◆ operator bool()
| constexpr microfmt::frame_pointer_iterator::operator bool |
( |
| ) |
const |
|
inlineexplicitconstexprnoexcept |
◆ operator*()
| constexpr const stack_frame & microfmt::frame_pointer_iterator::operator* |
( |
| ) |
const |
|
inlineconstexprnoexcept |
◆ operator++()
◆ operator->()
| constexpr const stack_frame * microfmt::frame_pointer_iterator::operator-> |
( |
| ) |
const |
|
inlineconstexprnoexcept |
The documentation for this class was generated from the following file: