2012-07-10 136 views
2

applicationWillTerminate有問題嗎?Xcode iOS瞭解堆棧跟蹤

誰能告訴我如何分析有關異常的跟蹤或更多細節?

我試過矮人轉盤,但似乎沒有更多的細節。

dwarfdump -arch armv7 MyApp.app.dSYM --lookup 0x000034b3 

告訴我

Line table file: 'main.m' line 14, column 18 with start address 0x00000000000034aa 

這是

int retVal = UIApplicationMain(argc, argv, nil, nil); 

這裏是堆棧跟蹤

-[UIApplication applicationWillTerminate:]: unrecognized selector sent to instance 0x27eed0 
(null) 
(
0 CoreFoundation      0x30df964f __exceptionPreprocess + 114 
1 libobjc.A.dylib      0x34914c5d objc_exception_throw + 24 
2 CoreFoundation      0x30dfd1bf -[NSObject(NSObject) doesNotRecognizeSelector:] + 102 
3 CoreFoundation      0x30dfc649 ___forwarding___ + 508 
4 CoreFoundation      0x30d73180 _CF_forwarding_prep_0 + 48 
5 CommonTools       0x089e441f -[ButtonEventOpt onProcClickEvent:state:frame:viewControl:] + 1662 
6 CommonTools       0x089ead37 -[CommonToolsView onClickBtnEvent:] + 366 
7 CoreFoundation      0x30d69571 -[NSObject(NSObject) performSelector:withObject:withObject:] + 24 
8 UIKit        0x30e77ec9 -[UIApplication sendAction:to:from:forEvent:] + 84 
9 UIKit        0x30e77e69 -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 32 
10 UIKit        0x30e77e3b -[UIControl sendAction:to:forEvent:] + 38 
11 UIKit        0x30e77b8d -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 356 
12 UIKit        0x30e78423 -[UIControl touchesEnded:withEvent:] + 342 
13 UIKit        0x30e5d535 _UIGestureRecognizerSortAndSendDelayedTouches + 2200 
14 UIKit        0x30e5cc01 _UIGestureRecognizerUpdateObserver + 696 
15 CoreFoundation      0x30dd0a35 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 16 
16 CoreFoundation      0x30dd2465 __CFRunLoopDoObservers + 412 
17 CoreFoundation      0x30dd375b __CFRunLoopRun + 854 
18 CoreFoundation      0x30d63ec3 CFRunLoopRunSpecific + 230 
19 CoreFoundation      0x30d63dcb CFRunLoopRunInMode + 58 
20 GraphicsServices     0x306e241f GSEventRunModal + 114 
21 GraphicsServices     0x306e24cb GSEventRun + 62 
22 UIKit        0x30e89d69 -[UIApplication _run] + 404 
23 UIKit        0x30e87807 UIApplicationMain + 670 
24 MyApp       0x000034b3 MyApp + 9395 
25 MyApp       0x0000346c MyApp + 9324 
) 
+0

嘗試在ButtonEventOpt和CommonToolsView的地址上使用dwarfdump。 – 2012-07-10 11:51:02

+0

你確定沒有另一個「無法識別的選擇器」消息,其中有更多信息? – 2012-07-10 11:52:09

+0

dwarfdump -arch armv7 MyApp.app.dSYM - lookup 0x089ead37 ----------------------------------- ----------------------------------- File:MyApp.app.dSYM/Contents/Resources/DWARF/MyApp(armv7) --------------------------------------------- ------------------------- 查找地址:0x00000000089ead37 in .debug_info ...未找到。 查找地址:0x00000000089ead37 in .debug_frame ...找不到。 – jeswang 2012-07-10 12:33:00

回答

0

有在ApplicationWillTerminate沒有錯誤,應用程序通常在這裏結束當你得到解決d錯誤。

你應該拿在輸出日誌中的一些細節,你的主要錯誤似乎是你叫這是不被支持的類選擇上,你叫:堆疊

unrecognized selector sent to instance 0x27eed0 

你可以看到,有多次打電話,但只有兩個人都從自己的類(我猜的,因爲我不知道這些的):

5 CommonTools       0x089e441f -[ButtonEventOpt onProcClickEvent:state:frame:viewControl:] + 1662 
6 CommonTools       0x089ead37 -[CommonToolsView onClickBtnEvent:] + 366 

檢查你的輸出日誌,如果有更多的有關拋出錯誤的方法調用的詳細信息。

+0

常用工具的含義是什麼?框架? – jeswang 2012-07-10 12:28:08

+0

如果CommonTools不是你的代碼,那麼你的代碼顯然沒有堆棧,並且你看到的錯誤是由於處理了你以前計劃要處理的事件。 – 2012-07-10 14:54:01

+0

@HotLicks我不知道CommonTools是否是我的代碼。 「CommonTools」是框架的名字嗎?我包括一個.a文件,我懷疑這是代碼所屬的位置,但我怎麼才能檢查.a文件中的函數或類? – jeswang 2012-07-11 02:17:07

0

何時應用程序崩潰?看起來你正在調用一個不知道該方法的對象的方法。

請張貼關聯的手勢識別器代碼。

0

我遇到了同樣的問題,我發現它! CommonTools是91桌面的圖書館,是一款越獄應用程序。當用戶安裝這個應用程序,他們可以直接殺死它的應用程序。我的應用程序在使用此應用程序退出應用程序時,會在OS 4.x上收到崩潰報告。所以你可以檢查你的應用程序是否有同樣的問題。 祝你好運!

+0

這與Stacktraces有什麼關係嗎? – doge 2013-08-02 11:05:42

+0

是的。崩潰是由'CommonTools'框架造成的,這個框架是一個越獄程序庫,它似乎將自己與其他應用程序掛鉤。 – Kerni 2013-08-02 12:49:06