直到最近(2012年11月4日左右),我们的ios应用程序的崩溃转储始终具有0x1000的加载地址。我们从来没有在atos中使用-l选项,我们仍然得到了很好的结果,所以我假设它默认为0x1000。在过去的一周里,我们遇到了跟踪崩溃的困难,事实证明,自11月4日以来,每个崩溃日志中的加载地址都有所不同。
有谁知道什么决定了加载地址?
Apple最近做过什么,或者可能是我们的应用程序为此做了什么?
答案 0 :(得分:1)
您可以通过查看报告底部的“二进制图像”部分从崩溃报告中检索基本地址。第一个条目是包含一系列地址的二进制图像,取第一个条目并将其作为加载地址传递给atos
。
崩溃报告的一个例子:
[...]
Binary Images:
0x1000 - 0xfcfff +YOUR_BINARY_NAME armv7 <9b381f1828fa3a888d4fbc4175f9a16d> /var/mobile/Applications/FD624263-D877-4F07-BC1F-5E6703A78D07/YOUR_APP.app/YOUR_BINARY_NAME
0x7ba000 - 0x7befff AccessibilitySettingsLoader armv7 /System/Library/AccessibilityBundles/AccessibilitySettingsLoader.bundle/AccessibilitySettingsLoader
[...]
0x1000
是您要查找的加载地址。