Sanitizer fast vs slow stack unwinding - what is the difference?

In the sanitizer code, when you unwind the stack you can “request fast unwinding”

void BufferedStackTrace::Unwind(u32 max_depth, ...,  bool request_fast_unwind);

What are the differences between fast and slow unwinding?
When is one more appropriate than the other?
Are there any hidden “costs” to fast unwinding?

Thank you :slight_smile:

“fast” unwinding essentially means “use frame pointers”, which requires the code be compiled with frame pointers.

(FWIW, I think Sanitizers - LLVM Discussion Forums would be a better place to ask this question :slight_smile:)

1 Like

Thank you @fmayer!