随笔分类 -  iphone调试

iphone调试相关知识点
摘要:在真机,或真机没连接到电脑时,可以把日志信息输出到文件1.设置日志文件路径 1 - (NSString*)logFilePath { 2 //非越狱版路径 3 #ifndef CRACK 4 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 5 NSString *documentsDirectory = [paths objectAtIndex:0]; 6 //越狱版路径 7 #else 8 NSString *d... 阅读全文
posted @ 2012-02-14 14:54 月光的尽头 编辑
摘要:EXC_BAD_ACCESS错误一般难以跟踪,出现的原因:对一个已经释放的对象进行release,或向已经释放的对象发送消息其实就是使用了野指针定位出错点:1.添加NSZombieEnabled环境变量(参考设置NSZombieEnabled和MallocStackLogging)在EXC_BAD_ACCESS发生时,控制台会打印问题描述比如输出:Untitled[3646:a0f] *** -[CFString release]: message sent to deallocated instance 0x10010d3402.此时就可以通过以下命令,得到信息(gdb) shell mal 阅读全文
posted @ 2012-02-14 13:00 月光的尽头 编辑
摘要:在模拟器上调试时,经常遇到内存访问错误,如下:2012-02-14 11:21:11.41 App[2433:205] *** -[Test retain]: message sent to deallocated instance 0x11e4fb1.在设置了MallocStackLogging之后(可查看设置NSZombieEnabled和MallocStackLogging)就可以在终端上输入 info malloc-history 命令,如下所示:(gdb) info malloc-history 0x11e4fb其中0x11e4fb为出错地址,这样就能得到堆栈信息2.此外,还有另一个 阅读全文
posted @ 2012-02-14 11:49 月光的尽头 编辑
摘要:在XCode,4以上版本中,设置NSZombieEnabled和MallocStackLogging1.点击XCode的Product菜单,选择Edit Scheme...选项2.选择左侧的Run...,右边点击Arguments3.在Environment Variables栏里,添加NSZombieEnabled,value为YES;再添加MallocStackLogging,value为YES;如下图所示:以上选项只能在模拟器上有效,如果你改变了iOS的版本,需要重新设定。调试结束后,最好记得把环境变量NSZombieEnabled,MallocStackLogging前面的勾去掉,因为 阅读全文
posted @ 2012-02-14 11:14 月光的尽头 编辑