CoreSymbolication 提供了一个非常强大的系统,用于查找和提取来自 mach-o 可执行文件、dyld 共享缓存和 dSYMs 的符号信息。
它包含两部分。私有的 C API 本身被封装在 CoreSymbolication
target 中,而 Swift 封装器则通过 SwiftCoreSymbolication
提供。
私有头文件绝对不完整。但是,如果您有任何需要/想要的,请提出 issue,我们可以一起研究。
一个小提示。我不知道如何制作一个 modulemap,以便让 SPM 处理链接。这意味着您需要向任何以此作为依赖项的可执行 target 添加一些特殊的链接器标志。
linkerSettings: [
.unsafeFlags([
"-Xlinker", "-F",
"-Xlinker", "/System/Library/PrivateFrameworks",
"-Xlinker", "-framework",
"-Xlinker", "CoreSymbolication",
]),
如果您在这里,您可能也会对 gSYM 感兴趣,这是 LLVM 项目用于符号化的一种高效格式。我还整理了一个 go 库,可用于消费 gsym 文件。
dependencies: [
.package(url: "https://github.com/ChimeHQ/CoreSymbolication")
],
targets: [
.target(
name: "UseCFunctionality",
dependencies: ["CoreSymbolication"]
),
.target(
name: "UseSwiftWrapper",
dependencies: [.product(name: "SwiftCoreSymbolication", package: "CoreSymbolication")]
),
]
我很乐意听到您的声音! Issue 或 pull request 都非常好。 也可以使用 Matrix 空间获得实时帮助,但我强烈倾向于以文档的形式回答。
我更喜欢协作,并且如果您有类似的项目,我很乐意找到合作的方式。
我更喜欢使用制表符进行缩进,以提高可访问性。但是,我宁愿您使用您想要的系统并创建一个 PR,也不要因为空格而犹豫。
通过参与此项目,您同意遵守 贡献者行为准则。