堆栈回溯

这个 Swift 包提供了对 Swift 程序自动打印崩溃回溯追踪的支持。

这个库旨在填补非 Darwin 平台 Swift 回溯追踪支持方面的空白。当语言运行时层面填补了这个空白时,这个库将变得多余并被弃用。

用法

在构建 Web 服务和守护程序时,不鼓励直接使用此库。 相反,请使用 swift-service-lifecycle,它可以帮助管理应用程序生命周期,包括在需要时设置回溯追踪钩子。

在你的 Package.swift 中添加 https://github.com/swift-server/swift-backtrace.git 作为依赖项。

崩溃回溯追踪

在你的 main.swift 中,执行

import Backtrace

// Do this first
Backtrace.install()

最后,对于 Swift < 5.2,请确保你在构建应用程序时启用了调试符号。 对于 Swift 5.2 及更高版本,调试符号会自动包含。

$ swift build -c release -Xswiftc -g

当你的应用崩溃时,堆栈跟踪将被打印到 stderr

安全性

有关安全流程的详细信息,请参阅 SECURITY.md

致谢

Ian Partridge (GitHub, Twitter) 本软件包的原始作者。

Johannes Weiss (GitHub, Twitter) 感谢其提供的信号处理代码。

Saleem Abdulrasool (GitHub, Twitter) 感谢其提供的 Windows 端口支持。