2011-11-28 116 views
13

我的應用程序運行良好,並且與預期的一樣,但由於某些原因,當我放置斷點時,進入/ over/resume會導致程序崩潰並伴隨EXC_BAD_ACCESS。這不會發生,如果我刪除/禁用斷點。在斷點處停止導致EXC_BAD_ACCESS

有什麼建議嗎?

+0

你能發表一些代碼嗎? – FreeAsInBeer

+0

你使用的線程? –

+2

我沒有使用線程。代碼是(我猜)是無關的,因爲它無論在哪裏崩潰我放置一個斷點。正如我所說,如果沒有斷點,沒有崩潰?! – Dann

回答

18

從我可以看到,LLDB似乎在Xcode 4.2和4.2.1中被破壞。在「編輯方案」設置中切換到GDB。

切換到GDB後,斷點的工作方式與預期一致。

Edit Scheme Dialog

+1

我使用的是LLDB,只要我有有效的表達式,我所有的斷點都能正常工作,只要我定義了一個無效的斷點(CCLayer中的super.position),xCode似乎關閉或崩潰,它甚至不允許我刪除無效表達式,因爲它不會在那裏破壞。當我轉換到GDB時,我可以看到無效表達式並將其刪除。然後我切換回LLDB並解決問題 –

+0

這幫了我 –

+0

正確的答案是更新到XCODE 5.0.2作爲另一位評論者指出下面。對不起,對Yellin G。=) – RanLearns

0

EXC_BAD_ACCESS意味着你在某個地方有內存問題 - 當你期望它仍然在附近時(很可能是autorelease的結果),很可能會發布某些內容。運行static analyzer找到它。我想你會看到崩潰,因爲調試器在加載斷點時積極佔用內存,因此在其他地方標記問題。

1

你在哪裏使用lldb而不是gdb?我使用Xcode 4.2.1和lldb進行系統化。切換回gdb(booooo)解決了這個問題。

0

對於它的價值,我有同樣的問題。我可以採用我知道的代碼是正確的,如果我用lldb進入它,它在達到斷點後崩潰。當我嘗試打印任何本地文件時,我也會得到這樣的輸出結果

(lldb) p self 
error: use of undeclared identifier 'self' 
error: 1 errors parsing expression 

看起來像lldb在Xcode 4.2.1中被破壞。我現在唯一的建議是切換回gdb。

1

我使用Xcode 4.3.2和更新的Xcode調試自動LLDB(A彈出的對話框中,我確認)。這真是一場噩夢,當我步入任何函數調用8-9中的10時,它就會崩潰。

改回GDB好像現在好多了!

12

對於任何可能與Xcode 5.0.1和小牛隊經歷相同事情的人: 嘗試刪除所有方案並再次自動創建它們 - 爲我修復它。

+4

重新創建這些方案對我無效。我注意到它發生在我的iOS 6設備(iPhone 5,iPad 2)上,但不是我的iOS 7設備(iPhone 4s)。 – Symmetric

+0

奇怪的是,它發生在我的iOS 6 iPad 2上。嘗試在重新創建方案後刪除並添加斷點。 – Andrew

+0

它現在正在工作,但我不知道爲什麼。我嘗試了很多東西......從設備上刪除應用程序,重新啓動它,重新啓動Mac等等。然後我遇到了另一個無關聯的問題(據我所知),Xcode永遠不會完成構建。我不記得我是如何找到它的,但事實證明我的鑰匙串已經與46,000個證書和93,000個名爲com.apple.ubiquity.peer-uuid的密鑰搞砸了。花了近一個小時纔打開鑰匙鏈!以下是幫助我解決問題的頁面的鏈接:https://discussions.apple.com/thread/3396579?start=0&tstart=0現在,這兩個問題都得到解決。去搞清楚! – Symmetric

1

這是XCode 5.0.1和Mavericks的錯誤。蘋果發佈了5.0.2,該錯誤已修復!