如何调试SIGABRT和EXC_BAD_ACCESS引起的crash
2013-09-11 17:30
316 查看
1. SIGABRT是处于程序控制状态下的crash,SIGABRT引起的crash是因为系统发现了应用程序正在做一些系统不希望它去做的事情(Exception)。
一般情况下,当SIGABRT发生的时候,会现实如下的bug信息:
它并不能精确的定位到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解决掉之后,立刻关闭它
一般情况下,当SIGABRT发生的时候,会现实如下的bug信息:
它并不能精确的定位到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解决掉之后,立刻关闭它
相关文章推荐
- 如何调试SIGABRT和EXC_BAD_ACCESS引起的crash
- 如何调试SIGABRT和EXC_BAD_ACCESS引起的crash
- SIGABRT和EXC_BAD_ACCESS引起的crash
- xcode 4.2 如何调试 EXC_BAD_ACCESS
- xcode 4.2 如何调试 EXC_BAD_ACCESS
- iPhone 如何调试 EXC_BAD_ACCESS
- iphone如何调试EXC_BAD_ACCESS
- xcode 4.2 如何调试 EXC_BAD_ACCESS
- 如何解决奔溃问题--SIGABRT和EXC_BAD_ACCESS
- 如何调试EXC_BAD_ACCESS错误
- xcode 4.2 如何调试 EXC_BAD_ACCESS
- 什么是EXC_BAD_ACCESS以及如何调试
- xcode 4.2 如何调试 EXC_BAD_ACCESS
- iphone如何调试EXC_BAD_ACCESS
- iphone如何调试EXC_BAD_ACCESS
- 转iphone如何调试EXC_BAD_ACCESS
- 如何调试EXC_BAD_ACCESS
- xcode 4.2 如何调试 EXC_BAD_ACCESS
- OC中如何调试野指针异常(EXC_BAD_ACCESS(code = ....))
- iphone XCode调试技巧之EXC_BAD_ACCESS中BUG解决