Print stack trace for fatalError

backtrace(3) and backtrace_symbols(3) should work on OS X. I expect other platforms have equivalents. Calling them from Swift would probably be unpleasant, but the right place to implement this is in stdlib/public/runtime/Errors.cpp.

Be warned that you may not like the results.

First, you'll need to demangle Swift and C++ symbols if you want something human-readable.

Second, on some platforms any backtrace collected in-process will be missing lots of symbol names. For example, on current iOS you would see "<redacted>" for most frames inside the system frameworks. The symbol names can be recovered, but you need to record additional data to make that work. In iOS crash logs the additional data required is the "Binary Images" section. Recording that data and recovering the symbol names is easy for a debugger or crash reporter, but would be hard for Swift to do.

ยทยทยท

On Dec 7, 2015, at 1:47 PM, Harlan Haskins via swift-evolution <swift-evolution@swift.org> wrote:

Is there even a way to display the call stack symbols in pure Swift without NSThread.callStackSymbols()?

--
Greg Parker gparker@apple.com Runtime Wrangler