https://forums.swift.org/t/backtraces-in-swift/61736
https://forums.swift.org/t/pitch-swift-backtracing-api/62741
I found the backtracing API design discussions in the second link especially illuminating
11–20 of 21 posts
https://forums.swift.org/t/backtraces-in-swift/61736
https://forums.swift.org/t/pitch-swift-backtracing-api/62741
I found the backtracing API design discussions in the second link especially illuminating
The best part of is that you can get all this goodness even without having Swift code in your codebase. Just link your C++ (or whatever) project with The Swift runtime (swiftrt.o and libswiftCore.so), and there you have it without writing any Swift.
If you're on mac (where I assume the two are already available), what compiler flags need to be passed in to do this?
-lswift_Backtracing also works, but dunno if that's "public API"
$ codesign --force --sign - --entitlements entitlements.plist foo
https://github.com/apple/swift/blob/main/docs/Backtracing.rs...
$ SWIFT_BACKTRACE="enable=yes" ./foo
Very cool!
The best part of is that you can get all this goodness even without having Swift code in your codebase. Just link your C++ (or whatever) project with The Swift runtime (swiftrt.o and libswiftCore.so), and there you have it without writing any Swift.
Looks like is already part of C++23 [0]. But if you must use an older C++, why link the entire Swift runtime rather than something GCC's builtin backtraces [1] or libbacktrace [2]? [0] https://www.sandordargo.com/blog/2022/09/21/cpp23-stacktrace... [1] https://www.gnu.org/software/libc/manual/html_node/Backtrace... [2] https://github.com/ianlancetaylor/libbacktrace
The best part of is that you can get all this goodness even without having Swift code in your codebase. Just link your C++ (or whatever) project with The Swift runtime (swiftrt.o and libswiftCore.so), and there you have it without writing any Swift.
Looks like is already part of C++23 [0]. But if you must use an older C++, why link the entire Swift runtime rather than something GCC's builtin backtraces [1] or libbacktrace [2]? [0] https://www.sandordargo.com/blog/2022/09/21/cpp23-stacktrace... [1] https://www.gnu.org/software/libc/manual/html_node/Backtrace... [2] https://github.com/ianlancetaylor/libbacktrace
Swift Backtracing is not only about the symbols, it’s also interactive and lets you attach the debugger after the process crashes, which is neat.
On modern linux distros, simply typing `coredumpctl debug` puts you right into gdb with the core dump loaded. If debuginfod is set up (not sure what the defaults look like there across distros), it will even automatically download debug symbols for all libraries loaded at the time of the crash.
Great that it lets you attach the debugger if it's running as interactive process. Does that get you a full Swift REPL like Python's debugger does?
I'll be interested in seeing how this gets integrated into the Xcode IDE, as I rarely find the need to go into the CLI, to debug, these days (although I had to, just a couple of days ago, to find a weird Apple crash, but I could work around it).
This can be useful. I'll be interested in seeing how this gets integrated into the Xcode IDE, as I rarely find the need to go into the CLI, to debug, these days (although I had to, just a couple of days ago, to find a weird Apple crash, but I could work around it).