Build Status Platforms Matrix

CoreSymbolication

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 文件。

集成

Swift Package Manager

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,也不要因为空格而犹豫。

通过参与此项目,您同意遵守 贡献者行为准则