2014-03-18 50 views
1

我想玩弄EXC_BAD_ACCESS來學習調試它,發現創建這種情況相當困難。專用創建EXC_BAD_ACCESS

我希望看到方案

使用「Enabeling殭屍對象」的它在哪裏,當你需要它嗎?

不會連這個工作 - 制定建立設置爲不使用ARC:

myobj *m = [[myobj alloc] init]; 
[m release]; 
[m dealloc]; 

m = nil; 
[m hello]; 

有些像很好的建議:

int * array = (void *)0xDEADBEEF; 
    array[2] = 10; 

它不僅使Xcode中停說在該行不良訪問,我需要更糟糕的:-)

我已經看到了它在main.m中最難調試的情況。你可以創建一個嗎?

+0

密切相關:爲什麼這麼EXC_BAD_ACCESS無益?(http://stackoverflow.com/q/2060435) –

+0

我想看到使用「Enabeling殭屍對象「 - 多謝了。 –

回答

3

試試這個

- (void) badAccess 
{ 
    void (*nullFunction)() = NULL; 
    nullFunction(); 
} 
0

EXC_BAD_ACCESS意味着你試圖訪問你不許內存。既然如此,一個指向任意地址的幾乎所有設置將雙快速提高此異常:

NSString * s = (__bridge id)(void *)0x8BADF00D; 
[s uppercaseString]; 

或者

int * array = (void *)0xDEADBEEF; 
array[2] = 10; 

我不知道如何有幫助這將是練;我認爲這會發生什麼事情,但如果你願意的話,你就是這麼做的。

0

我想你可以使用strcmp(0, "");

相關問題