在 iOS 下,有没有办法确定崩溃报告中正在执行哪个架构?
给定 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
为了更直接地回答原始问题(我希望),崩溃日志中有一个“二进制图像”部分。这明确指出了正在运行的架构,如下所示:
”
二进制图像:
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
请参阅 iOS 调试魔法(技术说明 TN2239) 和 了解和分析 iPhone 操作系统应用程序崩溃报告(技术说明 TN2151)。
杰夫
See iOS Debugging Magic (Technical Note TN2239) and Understanding and Analyzing iPhone OS Application Crash Reports (Technical Note TN2151).
Jeff