gpt4 book ai didi

ios - 以编程方式符号化地址

转载 作者:可可西里 更新时间:2023-11-01 04:55:23 27 4
gpt4 key购买 nike

我正在寻找一种在我自己的应用程序 (macOS) 中符号化外部应用程序符号 (iOS) 的方法,假设我有 DSYM 和系统符号。

Xcode 象征着应用程序地址和系统框架地址(UIKit、Foundation 等)atos 需要一个图像文件,并且可以从该图像中符号化地址。

我希望在我自己的应用程序中符号化大量地址。地址代表不同时间点的堆栈跟踪。我也想用符号表示系统框架地址。

我找到了 atosl ,它使用 dwarf.hlibdwarf.h 重新实现 atos 以取得不同程度的成功——但这似乎是一种非常低级的方法.

有没有其他方法可以一次符号化大量地址?

最佳答案

这是我在测试中使用的符号(需要 XCTest):https://github.com/avito-tech/Mixbox/blob/db3206c95b71f35ae6032ff9b0baff13026608f4/Frameworks/TestsFoundation/Reporting/FileLineForFailureProvider/StackTrace/ExtendedStackTraceEntryFromStackTraceEntryConverterImpl.swift

我使用代码在 Xcode 中突出显示测试中的失败,而不需要测试人员到处传递 file: StaticString = #file, line: UInt = #line。使用此样板的代码可读性较差,而且这种样板也没有太多理由,因为理想情况下 Xcode 应该能够突出显示测试失败的堆栈跟踪...

请注意,这里有一个问题。如果您在执行代码的机器上没有源代码,它就不会符号化。也许它可以快速修复,我什至没有尝试过。

代码中还有关于其他选项的注释:atos、lldb、CoreSymbolication。我认为 CoreSymbolication 是您想要使用的。我给你的解决方案很简单,更多地依赖于 XCTest,可配置性较低,还有一些其他缺陷。

关于ios - 以编程方式符号化地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45838710/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com