iOS崩溃报告无法获得正确的行号

时间:2013-05-09 08:46:54

标签: iphone 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,而不是错误行。你能告诉我我该怎么做才能得到正确的路线

2 个答案:

答案 0 :(得分:3)

以下是有关如何尝试阅读崩溃报告的一些链接:

Symbolicating iPhone App Crash Reports

Ray Wenderlich教程HERE

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

答案 1 :(得分:0)

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

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