2011-10-14 40 views
3

的XCode 4.2調試上viewDidLoadviewDidDisappear將結束上一個EXC_BAD_ACCESS在viewDidLoad中或viewDidDisappear的XCode 4.2調試將結束在EXC_BAD_ACCESS

它打破了對斷點,但持續時(「繼續執行程序」)返回a:線程1(0開始)上的EXC_BAD_ACCESS(代碼= 1,地址= 0x ....)。這在早期版本中沒有發生。

有人得到相同的錯誤?有人知道如何處理它?

謝謝!

代碼的例子是一個簡單的:

- (void) viewDidDisappear:(BOOL)animated { 
     [super viewDidDisappear:animated]; 
     NSLog(@"View did dissapear");  
    } 

當斷點調試(帶的NSLog線),然後就繼續它將結束對EXC_BAD_ACCESS擊中。如果沒有斷點,那麼一切正常。

我正在使用XCode 4.2 Build 4D199(OS X Lion 10.7.2)。使用LLDB調試器。

UPDATE:把所有的異常中斷,它始終在一個線程8支:EXC_BAD_ACCESS - 0x1f43:MOVL(%EBX),%eax中 - 線0:啓動....

更新2:出場與XCode和我真的不知道爲什麼,但知道它的工作。沒有更改代碼...嗯...奇怪...

+1

您可能想要添加一些代碼 – Phlibbo

+0

您是否在使用ARC? –

+0

檢查你的iVar ...一定要使用self.iVar .... – user523234

回答

1

如果重寫此方法,您必須在您執行某些時候調用超。

這是從文檔,我不知道是否是導致你的壞ACCES的問題,但它至少是你必須解決的問題。

+0

謝謝Zoleas。確實,你必須打電話超級,但這並沒有解決問題。上面的代碼僅僅是一個例子,並且似乎在任何使用新更新(XCode和調試器)的項目中的每個viewXXX方法中都會發生。無論如何,你的評論非常有幫助,提醒我在那裏打電話超級。謝謝! – BeMyGuestPlease

1

對於您提供的代碼,您沒有什麼幫助。

設置malloc_error_break,使殭屍,看看有沒有導致什麼

+0

謝謝@Lefteris。示例中的代碼並不重要。事情發生在每個viewXXX方法中,並且只在調試時發生。這在XCode 4.2之前沒有發生......殭屍已啓用並且已經嘗試過。設置malloc_error_break是什麼意思?你是怎樣做的?謝謝!! – BeMyGuestPlease

+0

嗨,看看這個:http://stackoverflow.com/questions/971249/how-to-find-the-cause-of-a-malloc-double-free-error 既然你說這是發生在每一種方法,這是否也發生在Apple的示例代碼中?或者你的意思是你的應用程序? – Lefteris

+0

剛剛使用Apple的示例代碼對其進行了測試,並且無法再現問題......您是對的!似乎在我的代碼... – BeMyGuestPlease

1

你必須始終貫穿在所有的,你重寫viewWill...viewDid...方法的一些點打電話給super。例如,

- (void) viewDidDisappear:(BOOL)animated { 
     NSLog(@"View did disapear"); 
     [super viewDidDisappear:animated]; 
} 
+0

謝謝。剛剛編輯了這個問題。代碼包括超級。這發生在任何項目(空的或已經有功能的項目)上。這發生在任何viewXXXX方法中,並且僅在調試時發生。 – BeMyGuestPlease

+0

我會嘗試在這種情況下首先卸載並重新安裝XCode ... – Lefteris

0

我在這裏看到稍有不同的問題。在我的情況下(SnowLeopard 10.6.8,XCode 4.2,LLVM 3.0)它停在剎車點,但XCode不顯示任何調試信息。我可以在GDB中看到我的stackrace,但是本地值已經搞亂了。有趣的是,我試圖使用performSelectorOnMainThread:它可以恢復XCode調試功能,但有些東西會破壞活動幀值。

- (void)viewDidDisappear:(BOOL)animated { 
    [super viewDidDisappear:animated]; 
     [self performSelectorOnMainThread:@selector(_destroyMarketBrowser) withObject:nil waitUntilDone:YES]; 

}

順便說一句:一切都運行在模擬器罰款,該問題只發生在真實設備(5.0.1或5。1 Beta2)

1

我收到viewDidDisappear同樣的錯誤:動畫 - 事實證明,我有一個錯字調用[self viewDidDisappear:animated];而不是[super viewDidDisappear:animated];

簡單的修復,但起初不是很明顯。我很驚訝它沒有給我一個警告。