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)
- In
Backtrace.c:127:
// 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);
}- In
Backtrace.c:182:
) {
*fp_n = fp_capture_inner(fp_frames, max);
*cfi_n = CaptureStackTraceCfi(cfi_frames, max, 0, r);
}
Last updated on