1. SIGABRT是处于程序控制状态下的crash,SIGABRT引起的crash是因为系统发现了应用程序正在做一些系统不希望它去做的事情(Exception)
它并不能精确的定位到crash发生在哪个源文件哪行代码中。为了精确的定位,我们可以使用Exception Breakpoint在Exception发生的时候暂停程序。
2. EXC_BAD_ACCESS意味着你的程序在内存管理方面有bug。与SIGABRT不同,发生EXC_BAD_ACCESS错误时,在控制台里你不会得到一个错误的信息,但是你可以通过一些设置得到这些错误信息并进一步定位内存错误发生的位置。
当你把选项Zombie Objects打开的时候,你的应用程序永远不会再释放(dealloc)内存,会导致不停的内存泄漏并最终在某一时刻run out of free memory,所以不要一直开着Zombie Objects选项,只有当你定位EXC_BAD_ACCESS错误的时候打开它,当bug解决掉之后,立刻关闭它
参考:http://www.raywenderlich.com/10209/my-app-crashed-now-what-part-1
本文介绍了SIGABRT和EXC_BAD_ACCESS两种程序崩溃的原因及其处理方法。SIGABRT是由于程序执行了系统不允许的操作导致的,而EXC_BAD_ACCESS则通常表明程序存在内存管理问题。文章还提供了如何使用ExceptionBreakpoint来精确定位问题以及使用ZombieObjects来帮助定位EXC_BAD_ACCESS错误的具体步骤。
1175

被折叠的 条评论
为什么被折叠?



