EXC_BAD_ACCESS(内存过度释放问题)

如何快速找到问题出在哪里?下面介绍几种方法:

一:在xcode中Run,Stop 右边也就是选择设备的地方左边找到

Scheme >Edit Scheme>Arguments>Environment Variables下面添加

1. NSZombieEnabled                       YES

2. MallocStackLoggingNoCompact   YES

3. MallocStackLogging                      YES

第一項 让系统把错误地址打印出来

第二項 可让xcode记录每个地址alloc的历史,这样我们就可以用命令把这个地址还原出来

第三項 可开放MallocStack,就知道记忆體在程式进行中被配置的历史

2.在.m或者.mm文件中  直接添加打印最后日志文件 代码如下:

#ifdef _FOR_DEBUG_

- (BOOL)respondsToSelector:(SEL)rtSelector

{

NSString *className = NSStringFromClass([self class]) ;

NSLog(@"%@ --> RTSelector: %s",className,[NSStringFromSelector(rtSelector)UTF8String]);

return [super respondsToSelector:rtSelector];

}

#endif

3.找到模糊的地方, 断点调试, 或者打印标识 从大范围到小范围,



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 1,841评论 0 9
  • 这里记录一下自己学习到的一些XCode调试的方法。这些调试方法可以让我们使用XCode编写代码进行调试时用起来更顺...
    DestinyFighter_阅读 19,628评论 0 14
  • 因为要结局swift3.0中引用snapKit的问题,看到一篇介绍Xcode8,swift3变化的文章,觉得很详细...
    uniapp阅读 4,569评论 0 12
  • *****************************(转载自此网址)********************...
    叶舞清风阅读 1,240评论 0 5
  • 1.Xcode IDE概览 说明:从左到右,依次是“导航窗格(Navigator)->边列(Gutter)->焦点...
    小地阅读 5,412评论 0 9