使用 libunwind
在 Mac 和 Linux 上生成 Swift 堆栈跟踪。
SwiftBacktrace
依赖于 libunwind
。
兼容预装的 /usr/lib/system/libunwind.dylib
。
需要安装 libunwind8
。
apt-get update && apt-get install -y libunwind8
import SwiftBacktrace
print(backtrace().joined(separator: "\n")) // backtrace()
print(demangledBacktrace().joined(separator: "\n")) // demangled backtrace
/root/project/.build/x86_64-unknown-linux/debug/SwiftBacktracePackageTests.xctest(SwiftBacktrace.callStackSymbols<A>(_: Swift.Int, transform: ((module: Swift.String, name: Swift.String, offset: Swift.UInt64, address: Swift.Optional<Swift.UnsafeRawPointer>)) -> A) -> Swift.Array<A>+0x87) [0x55f78f85c0b7]
/root/project/.build/x86_64-unknown-linux/debug/SwiftBacktracePackageTests.xctest(SwiftBacktrace.demangledBacktrace(Swift.Int) -> Swift.Array<Swift.String>+0x80) [0x55f78f85ae10]
/root/project/.build/x86_64-unknown-linux/debug/SwiftBacktracePackageTests.xctest(SwiftBacktraceTests.SwiftBacktraceTests.test_backtrace() -> ()+0x4a5) [0x55f78f8608d5]
/root/project/.build/x86_64-unknown-linux/debug/SwiftBacktracePackageTests.xctest(partial apply forwarder for SwiftBacktraceTests.SwiftBacktraceTests.test_backtrace() -> ()+0x9) [0x55f78f861119]
Norio Nomura
此软件包采用 MIT 许可证。 更多信息请查看 LICENSE 文件。