2012-01-02 46 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中使用。