iOS怎么样一行代码,或者最少的代码让程序崩溃?

iOS怎么样一行代码,或者最少的代码让程序崩溃?

snakeninny:加一个条件,编译时不准出现error或者warning

1 个赞

exit(0) 或 while (1) { }

[self performSelector:@selector(WERWERWEREREWR) withObject:nil]; //main thread?

send SIGKILL给自己[[UIApplication sharedApplication] sendAction:SIGKILL to:[UIApplication sharedApplication] from:self forEvent:nil];

int xxx = (int)-450;
printf("%d", *xxx);

这个不是崩溃,是正常退出

正常退出:
[UIApplication performSelector:@selector(terminateWithSuccess)]
其中terminateWithSuccess是UIApplication的私有方法;

异常退出(崩溃):
[UIApplication performSelector:@selector(terminateWithoutSuccess)]
其中terminateWithoutSuccess是不存在的方法,所以会因unknown selector而崩溃

@[][10];

1 个赞

NSLog(@"%@",1);

1 个赞

[@[] objectAtIndex:1];

你的实现跟@Songkunda 的异曲同工:wink:

修改main函数

这个可以,堆栈信息怎么去看?通过堆栈信息我们可以看到什么?

其实不同的场景有不同的崩溃方法 要看你再那个场景使用 一般都是非法指令 或者 内存暴增 要想不报警告和红 也是很简单的 ,还有 while (1) { } 是不会崩溃的 只会假死…

while (1) {}
运行一会儿就没有响应了。再过一会儿,app应该会被系统杀死吧。

他只是阻塞掉了主进程 造成假死 应该不会被系统杀死 除非在mrc中 不停申请内存 可能会被杀死(在arc中不会出现此现象 系统会自动释放内存)

我刚试了,放了个死循环在didFinishLaunchingWithOptions 里。然后在手机上试了一下,过一会儿进程就被系统杀死了。不过,如果是连着Xcode运行的话,看门狗好像不会被激活,那种情况下不会被杀死。

放在didFinishLaunchingWithOptions 里造成杀死进程的现象是 苹果的长时间无法启动程序造成的 .

abort();
^(int^)0x1235 = 12345;^换成星号

赋值给空指针

用断言语句 Google " NSAssert()"