2013-05-09 83 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