LLVM TSAN / ASAN
对于多线程和底层不安全接口的服务器代码,使用 LLVM 的 ThreadSanitizer 和 AddressSanitizer 的能力可以帮助排查无效的线程使用和无效的内存使用/访问问题。
有一篇博客文章概述了 TSAN 的用法。
简而言之,可以使用 swiftc 命令行选项 -sanitize=address
和 -sanitize=thread
分别用于这两个工具。
此外,对于 Swift Package Manager 项目,您可以在命令行中使用 --sanitize
,例如:
swift build --sanitize=address
或
swift build --sanitize=thread
它也可以用于测试。
swift test --sanitize=address
或
swift test --sanitize=thread