2012-01-02 98 views
2

,我常常堆栈跟踪像这样:如何解释堆栈跟踪,当它停在主

 
0 StackAsk 0x0007fc0d +[TFCrashHandler backtrace] + 429 
1 StackAsk 0x0007fe4b TFHandleExceptions + 35 
2 CoreFoundation 0x33d56987 __handleUncaughtException + 74 
3 libobjc.A.dylib 0x3583d2d1 _objc_terminate + 128 
4 libc++abi.dylib 0x34a763c5 _ZL19safe_handler_callerPFvvE + 76 
5 libc++abi.dylib 0x34a76451 _ZdlPv + 0 
6 libc++abi.dylib 0x34a77825 __cxa_current_exception_type + 0 
7 libobjc.A.dylib 0x3583d235 objc_exception_rethrow + 12 
8 CoreFoundation 0x33cac53d CFRunLoopRunSpecific + 404 
9 CoreFoundation 0x33cac39d CFRunLoopRunInMode + 104 
10 GraphicsServices 0x34f93439 GSEventRunModal + 136 
11 UIKit 0x317a39f1 UIApplicationMain + 1080 
12 StackAsk 0x0002c1c1 main (main.m:16) 
13 StackAsk 0x0002c150 start + 40 

(该日志是从测试仪,使用TestFlightApp.com)

当发生这种情况时,我在测试中,调试器停止了main函数。

给出的例外,理由是:

 
*** -[__NSArrayM objectAtIndex:]: index 17 beyond bounds [0 .. 16] 

我不能复制的崩溃自己,使用Release或Debug构建配置没有什么区别。我能做些什么才能找到发生异常的地方?

+0

你有没有试过打破'objc_exception_throw'? – jlehr 2012-01-02 17:21:48

+0

麻烦的是它来自测试者,而不是我自己,我无法复制它。所以我不能设置断点,因为没有任何调试它。 – 2012-01-02 17:27:24

回答

0

要求测试人员检查iOS生成的崩溃报告,该报告可能会有最后一个异常回溯,您可以对其进行符号化,然后查看发生的位置。

还有其他的崩溃报告框架和服务,HockeyApp和QuincyKit(注:我参与了这两者)。这些使用PLCrashReporter,它也可以跟踪最后一个异常回溯,并且可以安全地在App Store中使用。