iOS怎么样一行代码,或者最少的代码让程序崩溃?
snakeninny:加一个条件,编译时不准出现error或者warning
iOS怎么样一行代码,或者最少的代码让程序崩溃?
snakeninny:加一个条件,编译时不准出现error或者warning
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];
NSLog(@"%@",1);
[@[] objectAtIndex:1];
你的实现跟@Songkunda 的异曲同工
这个可以,堆栈信息怎么去看?通过堆栈信息我们可以看到什么?
其实不同的场景有不同的崩溃方法 要看你再那个场景使用 一般都是非法指令 或者 内存暴增 要想不报警告和红 也是很简单的 ,还有 while (1) { } 是不会崩溃的 只会假死…
while (1) {}
运行一会儿就没有响应了。再过一会儿,app应该会被系统杀死吧。
他只是阻塞掉了主进程 造成假死 应该不会被系统杀死 除非在mrc中 不停申请内存 可能会被杀死(在arc中不会出现此现象 系统会自动释放内存)
我刚试了,放了个死循环在didFinishLaunchingWithOptions 里。然后在手机上试了一下,过一会儿进程就被系统杀死了。不过,如果是连着Xcode运行的话,看门狗好像不会被激活,那种情况下不会被杀死。
放在didFinishLaunchingWithOptions 里造成杀死进程的现象是 苹果的长时间无法启动程序造成的 .
abort();
^(int^)0x1235 = 12345;^换成星号
赋值给空指针
用断言语句 Google " NSAssert()"