符号化iOS崩溃地址返回不合适的结果

最近我花了几天的时间来学习如何用自定义解决scheme来收集崩溃的行号。

我知道我需要.app和.dSYM文件,我已经检查了UUID,它和我得到的崩溃一样,我也得到了UUID来validation。

三个相同的UUID和架构是arm64,我得到崩溃从我的iPhone5Stesting它。

好的,比方说,我在我的堆栈跟踪中有两个与我的应用程序相关。 这是从我得到的JSON完整的stacktrace。

"0 MyTestApp 0x10000efe8 0x100008000 + 28648", "1 UIKit 0x1863d90c8 0x186390000 + 299208", "2 UIKit 0x1863d905c 0x186390000 + 299100", "3 UIKit 0x1863c2538 0x186390000 + 206136", "4 UIKit 0x1863d8a5c 0x186390000 + 297564", "5 UIKit 0x1863d86f0 0x186390000 + 296688", "6 UIKit 0x1863d3388 0x186390000 + 275336", "7 UIKit 0x1863a4b68 0x186390000 + 84840", "8 UIKit 0x1863a2c58 0x186390000 + 76888", "9 CoreFoundation 0x18339b044 0x1832d0000 + 831556", "10 CoreFoundation 0x18339a3a0 0x1832d0000 + 828320", "11 CoreFoundation 0x183398638 0x1832d0000 + 820792", "12 CoreFoundation 0x1832d96d0 0x1832d0000 + 38608", "13 GraphicsServices 0x188fbdc0c 0x188fb0000 + 56332", "14 UIKit 0x18640afdc 0x186390000 + 503772", "15 MyTestApp 0x10000e4f0 0x100008000 + 25840", "16 libdyld.dylib 0x18fed3aa0 0x18fed0000 + 15008" 

好了,现在我在包含.app和.dSYM文件的文件夹中运行atos命令,尝试查找并标记内存地址。

 xcrun atos -arch arm64 -o 'MyTestApp.app'/'MyTestApp' 0x10000efe8 

但是这条线并不完全返回我可以使用的东西。

 -[AFHTTPRequestSerializer multipartFormRequestWithMethod:URLString:parameters:constructingBodyWithBlock:error:] (in MyTestApp) (AFURLRequestSerialization.m:317) 

我仍然了解这个过程,但我相信(in MyTestApp)应该是我的testing应用程序可读的东西。

我用来崩溃应用程序和testing如何符号化堆栈跟踪的代码如下。

 113 - (IBAction)logUnhandledException:(UIButton *)sender 114 { 115 void (*nullFunction)() = NULL; 116 nullFunction(); 117 } 

编辑:我有"image_size": "0xa8000""image_base_address": "0x100008000"

我不应该得到关于这种方法和行号(如果可行)的一些信息?

任何帮助和意见表示赞赏。

谢谢。

当你想象征性地使用加载地址(第二个地址,总是使用框架/库的图像基地址,但从未改变我的经验),在-l标志之后,所有的符号这个框架的地址,架构和相应的iOS版本的框架,或者如果它是你的应用程序的行,那么使用dSYM文件,例如用于iOS 8.1.1的UIKit符号

 xcrun atos -arch arm64 -o ~/Library/Developer/Xcode/iOS DeviceSupport/8.1.1 (12B436)/Symbols/System/Library/Frameworks/UIKit.framework/UIKit -l <load_address> <symbols_addressess> ... 

为您自己的申请线路

 xcrun atos -arch arm64 -o MyApp.app.dSYM/Contents/Resources/DWARF/MyApp -l <load_address> <symbols_addressess> ... 

你会得到所有适当的结果。