在 iOS 下,有没有办法确定崩溃报告中正在执行哪个架构?

发布于 2024-10-16 06:38:37 字数 347 浏览 6 评论 0原文

给定 iOS 上的崩溃报告(非符号),是否有办法确定设备正在执行哪种架构(armv6 或 armv7)?

我为什么要问?我收到了一些与存档的 dSYM/可执行文件无关的崩溃报告。因此,我无法使用自动化工具对它们进行符号化。我想尝试将崩溃文件中记录的 UUID 更改为保留 dSYM 的版本(两个版本之间的更改可能只是资源文件更改[图像],因此编译的代码应该相同)。这可以让我使用自动化工具来符号化报告并提取一些有意义的崩溃数据。

dwarfdump 显示我的可执行文件和 dSYM 与预期匹配,但它还显示每个(胖二进制)armv6 和 armv7 都有两种体系结构。为了能够快速将 UUID 替换到崩溃报告中,我需要知道设备在崩溃之前使用的架构。

Given a crash report (non-symbolicated) on iOS, is there a way to determine which architecture (armv6 or armv7) was being executed by the device?

Why do I ask? I have received some crash reports that are not associated with an archived dSYM/executable. As such, I am unable to symbolicate them with the automated tools. I am wanting to experiment with changing the recorded UUID in the crash files to a release where the dSYM was preserved (the changes between the two releases are probably just resource file changes[images], so the compiled code should be identical). This may allow me to use the automated tools to symbolicate the reports and extract some meaningful crash data.

dwarfdump reveals that the executable and dSYM that I have match as expected, but it also shows that there are two architectures in each (fat binary) armv6 and armv7. To be able to quickly substitute the UUIDs into the crash reports, I need to know what architecture was used by the device prior to the crash.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

莫多说 2024-10-23 06:38:37

为了更直接地回答原始问题(我希望),崩溃日志中有一个“二进制图像”部分。这明确指出了正在运行的架构,如下所示:

二进制图像:
0x1000 - 0x167fff +应用程序名称armv7 <8195d6729b973c6190ab00f36dfb1dd6> /var/mobile/Applications/90AA05D9-0094-48BC-BD0A-CE4C1F1B6A93/appname.app/appname


在上面的示例中,它表示“armv7”。如果运行的是armv6版本,它会显示armv6

To answer the original question more directly (I hope), in the crash log there is a "Binary Images" section. This explicitly states the architecture that was running, as in:
"
Binary Images:
0x1000 - 0x167fff +appname armv7 <8195d6729b973c6190ab00f36dfb1dd6> /var/mobile/Applications/90AA05D9-0094-48BC-BD0A-CE4C1F1B6A93/appname.app/appname

"
In the above example it indicates "armv7". If the armv6 versio was running, it would have said armv6 instead

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文