设置NSZombieEnabled和MallocStackLogging

在XCode,4以上版本号中,设置NSZombieEnabled和MallocStackLogging

1.点击XCode的Product菜单,选择Edit Scheme...选项

2.选择左側的Run...,右边点击Arguments

3.在Environment Variables栏里,加入NSZombieEnabled,value为YES;再加入MallocStackLogging。value为YES;

例如以下图所看到的:

以上选项仅仅能在模拟器上有效,假设你改变了iOS的版本号。须要又一次设定。

调试结束后,最好记得把环境变量NSZombieEnabled,MallocStackLogging前面的勾去掉,由于它们会使得内存不会被释放.

时间: 2024-10-10 23:14:24

设置NSZombieEnabled和MallocStackLogging的相关文章

在模拟器上显示堆栈信息

在模拟器上调试时,经常遇到内存访问错误,如下: 2012-02-14 11:21:11.41 App[2433:205] *** -[Test retain]: message sent to deallocated instance 0x11e4fb 1.在设置了MallocStackLogging之后(可查看设置NSZombieEnabled和MallocStackLogging) 就可以在终端上输入 info malloc-history 命令,如下所示: (gdb) info mallo

解决EXC_BAD_ACCESS错误的一种方法--NSZombieEnabled

我们做iOS 程序开发时经常用遇到 EXC_BAD_ACCESS 错误导致 Crash,出现这种错误时一般 Xcode 不会给我们太多的信息来定位错误来源,只是在应用 Delegate 上留下像Thread 1: Program received signal:"EXC_BAD_ACCESS",让问题无从找起. 比如你对已释放的对象发送消息时就会出现,EXC_BAD_ACCESS,再如release 的对象再 release,release 那些autorelease 的对象等也会报这

解决EXC_BAD_ACCESS错误的一种方法--NSZombieEnabled(转)

我们做iOS 程序开发时经常用遇到 EXC_BAD_ACCESS 错误导致 Crash,出现这种错误时一般 Xcode 不会给我们太多的信息来定位错误来源,只是在应用 Delegate 上留下像Thread 1: Program received signal:"EXC_BAD_ACCESS",让问题无从找起. 比如你对已释放的对象发送消息时就会出现,EXC_BAD_ACCESS,再如release 的对象再 release,release 那些autorelease 的对象等也会报这

Xcode开发技巧——调试

断点(Breakpoint)断点是调试中非常重要的一个手段.由于在执行到某些代码前需要执行许多其它代码,不可能用单步跟踪一条一条执行过来,这时只要在需要暂停的地方设置一个断点,然后让程序运行,当执行到这个断点位置时不需要用户干预就会暂停并返回集成调试程序.断点必须位于可执行代码行上,凡设置在注释,空白行,变量说明上的都是无效的. 一.概述 1.掌握调试技巧,调试技术 最基本,最重要的调试手段包括:单步跟踪,断点,变量观察等. 单步跟踪(Step)所谓单步跟踪是指一行一行地执行程序,每执行一行语句

IOS开发中 常常遇到的遇到的警告,错误汇总,解决方法

从sdk3.2.5升级到sdk 5.1中间废弃了很多的方法,还有一些逻辑关系更加严谨了. 1,警告:"xoxoxoxo"  is deprecated 解决办法:查看xoxoxoxo的这个方法的文档,替换掉这个方法即可. 2,警告:Declaration of "struct sockaddr" will not be visible outside of this function 解决办法:在你的开源.m文件中添加 #import <netinet/in.

XCode 4 的调试定位技巧

给跪了,相当好用: http://superwanc.diandian.com/post/2013-09-12/40052870537 经常有朋友会问Crash的问题.Crash最多的无非就两种,一种就是signal SIGABRT,大概的意思就是发送Message出现问题,信号迷失了.这种的Crash其实是很好定位,Crash了后直接看Console里出的最后日志,比如这段: 2012-03-28 19:26:33.055 TableViewMenuDemo[3916:f803] *** Te

iOS_项目完成后测试app

在项目中遇到各种问题: (1)thread 1:exc_bad_access(code=1,address=0x10) 完全不知道错误出现在哪里. 错误原因: exc_bad_access(code=1, address=0x789870)野指针错误,主要的原因是,当某个对象被完全释放,也就是retainCount,引用计数为0后.再去通过该对象去调用其它的方法就会出现野指针错误. 例如: Person *jerry = [[Person alloc]init]; // retainCount引

xcode里面使用Memory Leaks和Instruments检测内存泄漏

教程截图: Leaks和Instruments教程[检测内存泄露]" src="http://pic002.cnblogs.com/images/2011/283130/2011080816513182.jpg"> 作为一名无证程序员,无论你多么精通Objective-C的内存管理,随着时间的推移,你也不可避免的犯内存相关的错误.但通常因为代码量太大,以至于你不可能一行一行的去排除(等你解决完,你设计的动车早相撞了!) 幸运的是,苹果已经提供了一些好的方式来帮助你找到应

编程错误总结(一)

各种IOS开发经验教训总结 1.所有的UI操作,都要切换到主线程中进行.否则,会发生莫名其妙的错误. 2.在主线程中,runloop默认是开启状态的.非主线程中,如果要用到runloop,必须手动开启runloop. 3.对于常见的EXEC_BAD_ACCESS,EXC_BAD_INSTRUCTION,错误,一般都是因为访问已经被release的对象造成的.尤其是在一个线程中访问另外一个线程的autorelease库中的对象,尤其要注意此类问题. 4.严格遵守iphone 内存管理手册,对于不是