2013-05-09 78 views
0

我想看看我的应用程序我的错误行:的iOS崩溃报告未得到正确的行号

0 CoreFoundation      0x36e008a7 __exceptionPreprocess + 186 

1 libobjc.A.dylib      0x33217259 objc_exception_throw + 32 
2 CoreFoundation      0x36e00789 +[NSException raise:format:] + 0 
3 CoreFoundation      0x36e007ab +[NSException raise:format:] + 34 
4 Foundation       0x32a8e5b3 +[NSJSONSerialization JSONObjectWithData:options:error:] + 66 
5 myshine        0x001f68d1 _mh_execute_header + 1046737 
6 myshine        0x000fb27b _mh_execute_header + 17019 
7 UIKit        0x35009cab -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1182 
8 UIKit        0x350037dd -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 408 
9 UIKit        0x34fd1ac3 -[UIApplication handleEvent:withNewEvent:] + 1010 
10 UIKit        0x34fd1567 -[UIApplication sendEvent:] + 54 
11 UIKit        0x34fd0f3b _UIApplicationHandleEvent + 5826 
12 GraphicsServices     0x34f1e22b PurpleEventCallback + 882 
13 CoreFoundation      0x36dd4523 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 38 
14 CoreFoundation      0x36dd44c5 __CFRunLoopDoSource1 + 140 
15 CoreFoundation      0x36dd3313 __CFRunLoopRun + 1370 
16 CoreFoundation      0x36d564a5 CFRunLoopRunSpecific + 300 
17 CoreFoundation      0x36d5636d CFRunLoopRunInMode + 104 
18 UIKit        0x3500286b -[UIApplication _run] + 550 
19 UIKit        0x34fffcd5 UIApplicationMain + 1080 
20 myshine        0x000faa33 _mh_execute_header + 14899 
21 myshine        0x000f9270 _mh_execute_header + 8816 



mac04:skydrive pwang$ dwarfdump --uuid myshine.app.dSYM 
UUID: DEB2D948-0339-31BF-B3A3-CE21B73171AC (armv7) myshine.app.dSYM/Contents/Resources/DWARF/myshine 
UUID: 90212FF0-80ED-3083-9DFB-FC883F1EDBD0 (armv7s) myshine.app.dSYM/Contents/Resources/DWARF/myshine 
mac04:skydrive pwang$ dwarfdump --uuid myshine.app/myshine 
UUID: DEB2D948-0339-31BF-B3A3-CE21B73171AC (armv7) myshine.app/myshine 
UUID: 90212FF0-80ED-3083-9DFB-FC883F1EDBD0 (armv7s) myshine.app/myshine 
mac04:skydrive pwang$ /Applications/Xcode.app/Contents/Developer/usr/bin/atos -arch armv7 -o myshine.app/myshine 0x001f68d1 
0x001f68d1 (in myshine) 

它给我0x001f68d1,而不是错线。你能告诉我我应该做能得到正确的路线

+0

你有这个应用程序在Xcode存档?您需要能够解码崩溃报告,并且需要提供关于构建的Xcode信息...... – Wain 2013-05-09 08:49:48

+0

我没有整个ios崩溃报告 – pengwang 2013-05-09 09:45:37

+0

您需要崩溃报告的二进制映像部分的第一行,否则您将无法找到atos需要的正确地址。请参阅http://stackoverflow.com/questions/13574933/ios-crash-reports-atos-not-working-as-expected/13576028#13576028 – Kerni 2013-05-09 09:51:01

回答

3

这里有一些链接,你如何能做到尝试读取崩溃报告:

Symbolicating iPhone App Crash Reports

雷Wenderlich教程HERE

这就是说,有时你不会在你的项目中得到正确的错误线。例如,如果你已经为一个对象实例化了一个未保存的指针,并且在保留计数为零之后尝试指向它,那将导致错误(访问错误),但实际上发生错误访问崩溃的地方是而不是问题所在的地方(指针的声明)。我的第一步(通常在尝试分析崩溃报告之前,除非明显),那就是设置一个断点,然后遍历代码,直到应用程序崩溃。您还可以使用断点并将其自定义为在将输出发送到调试器或播放声音时继续进行,等等。有关调试技​​术的一些信息,请参见THIS教程。

+1

将弱指针重命名为不留指针..弱指针不会与弧一起崩溃,也不会弧没有弱 – 2013-05-09 09:09:08

0

日志表明NSJSONSerialization正在引发异常。编写一个try-catch块,并将引起异常的代码放入其中。打印异常详细信息,然后您就会知道这个问题。

您还可以为objc_exception_throw+[NSException raise:format:]添加一个断点并调试代码。发生错误情况时,您将能够跟踪导致此错误的事件链。请参阅to this link以了解如何添加这些断点。

+0

这是一个旧版本,我想知道为什么给0x001f68d1(在myshine)? – pengwang 2013-05-09 09:44:48

+0

试试这个[link](http://stackoverflow.com/a/14767076/1407017)。这会让程序在objc_exception_throw中断,然后您可以在“Debug navigator”选项卡中检查堆栈跟踪。 – Amar 2013-05-09 09:49:49