Skip to content
CaptureStackTraceCfi

CaptureStackTraceCfi

Description

CFI-based capture. Two shapes:

CaptureStackTraceCfi(out, max, skip, resolver) – raw, returns size CaptureStackTraceCfi(out_vec, skip, resolver) – vec, returns bool

Success

Raw form returns the number of CFI-walked frames written into out (0..max); resolver is reused for symbol lookup. Vec form returns true; *out_vec is grown and populated with the captured frames.

Failure

Raw form returns 0 when the CFI walker cannot make progress (missing .eh_frame / .debug_frame, corrupt tables, or max == 0). Vec form returns false on allocator failure while growing *out_vec.

Usage example (Cross-references)

Usage examples (Cross-references)
    // driven by .eh_frame rules in either case.
    static __attribute__((noinline)) size cfi_capture_inner(SymbolResolver *r, StackFrame *frames, size max) {
        return CaptureStackTraceCfi(frames, max, 0, r);
    }
    ) {
        *fp_n  = fp_capture_inner(fp_frames, max);
        *cfi_n = CaptureStackTraceCfi(cfi_frames, max, 0, r);
    }
Last updated on