inlinecrash-reportssymbolicatecrash

How are inline functions in stack traces recorded and symbolicated?


When I pause at a breakpoint, Xcode seems to be able to see inline functions, and they're marked with "[inline]". Further, when I do CPU profiling, it's able to see inline functions. However, when I record and symbolicate a crash with PLCrashReporter and symbolicatecrash, it doesn't seem to include the inline functions. backtrace + backtrace_symbols also skips inlined functions. How does this work?


Solution

  • DWARF debug symbols represent information on inlining with DW_TAG_inlined_subroutine and DW_AT_inline. When stack traces are being generated and functions are resolved the DWARF tree can be walked to collect this inlining information.