2010-11-08 124 views
1

我想調試一個iPhone應用程序(iOS模擬器4.1)的小原型,編譯爲調試,與所有配置顯然確定。Xcode停在斷點,似乎掛起

該應用程序使用Cocos2d圖形引擎和GDataXMLNode庫(用於讀取XML)。沒有太多東西在發生。但是在某些方法上,如果我設置了一個斷點,gdb只是「停止」。

這裏的調試器的狀態欄它擊中後,他的斷點:

alt text

而這裏有斷點(sshot)代碼:

alt text

:斷點可以在該函數中的任何地方,並且是相同的。

這是調用代碼(從另一個對象)

self.map = [SimulationLoader loadMap]; 

無編輯按鈕的工作時,設置斷點的「loadMap」內部(步驟到的,失步,然後,繼續執行,等等)我可以停止和/或重新啓動調試,它可以工作(但可以回到開始)gdb提示符會讓我寫,但沒有任何反應,我無法查看對象值或任何與調試有關的信息。恢復執行,它不會做任何事情。

奇怪的是,如果我在之前放了一個斷點或之後該行(loadMap),它都可以工作,我可以步出或進入,調試它並完成我想要做的一切。

我錯過了什麼?

「失敗」斷點被擊中(並且「掛起」)幾秒鐘後,堆棧窗口清除。我相信所有這些都是因爲gdb已經停止了,但問題是,爲什麼它會停在那裏?這有什麼限制?

我正在編譯與LLVM GCC 4.2什麼是值得的(但可能會改變其他如果這是問題,還沒有嘗試過,因爲我不太瞭解這些差異)。

回答

0

有什麼(可能在你的地圖班?)需要時間?例如,在該地點觸發斷點的雙擊是否被中斷?

(即無斷點=>錄得雙抽頭,斷點=>第二次敲擊來斷點命中之後,所以只有一個抽頭被註冊。)

我沒有看到這樣的事情在你的具體代碼,但這是可以顯示斷點開/關之間神祕不同行爲的那種類型。