zoukankan      html  css  js  c++  java
  • 怎样在xcode4.x里面使用Memory Leaks和Instruments

    EXC_BAD_ACCESS错误,我通常建议:

      1.在可执行选项中设置NSZombieEnabled参数,这有时会帮缩小问题的范围;

      2.运行apple的内存检测工具,如 Leaks ,以便寻找内存问题;

      3设定一个断点,单步运行代码,直到你找到引起崩溃的位置;

      4.注释代码,直到不崩溃为止,然后再从后往前查找错误;

      现在让我们从第一条开始实验

        NSZombieEnabled选项对于崩溃毫无办法,所以你完全可以放弃抵抗。

     

     当你使用一个已经被销毁的对象,NSZombieEnabled会标志一个警告,所以NSZombieEnabled只是一个flag。这是一个良好的开端,因为大多数崩溃的原因都是使用了已经销毁的对象。

      按照以下设置:

    怎样在xcode4.x里面使用Memory <wbr>Leaks和Instruments

    怎样在xcode4.x里面使用Memory <wbr>Leaks和Instruments

    点击OK, 重新运行app,随便操作下使程序崩溃。 查看下console log你就会看到类似如下信息:

    2011-02-03 12:07:44.778 XXXX ***
    -[XXXXX:]: message sent to deallocated instance ...



    2.内存泄漏
    最简单的办法就是:(快捷键:command+shift+b)
    怎样在xcode4.x里面使用Memory <wbr>Leaks和Instruments

    你会看到如下图:
    怎样在xcode4.x里面使用Memory <wbr>Leaks和Instruments

    怎么修改,自己慢慢按提示一步一步改


    不幸的是,你不能依靠以上方法找出一切问题。我们还得使用一个强大的自动化工具来帮助你检查程序是否有内存泄漏– the Leaks Instrument

    接下来就是代开Leaks Instrument工具,如下图:

    怎样在xcode4.x里面使用Memory <wbr>Leaks和Instruments


    选中Leaks,点击Profile,出现以下试图,如图:
    怎样在xcode4.x里面使用Memory <wbr>Leaks和Instruments

    点击stop(红色的那个),设置调试参数:(选择Leaks,选择Call Tree, 选中如下图的的3个复选框),然后点击(Record)按钮 重启

    怎样在xcode4.x里面使用Memory <wbr>Leaks和Instruments


    怎样在xcode4.x里面使用Memory <wbr>Leaks和Instruments

    ,淡红色那条就代表内存泄漏了,下面两个不同的函数就表示存在内存泄漏的函数, 双击一个函数的名字,它会带你直接到存在内存泄露的这行代码。这可以给你一个很好的错误位置提示,如果你查看代码并加以思考,你应该能够找出问题所在并解决它。

    怎样在xcode4.x里面使用Memory <wbr>Leaks和Instruments


      所以,为什么不看看代码,并且看看你是否能找出问题所在并修正吗?一旦你作出修改,并且能够无错误提示的跑Leaks。如果通过,表示你完成了

  • 相关阅读:
    2019重新起航:搭建个人博客
    Alibaba Nacos:搭建Nacos平台
    ELK:使用docker搭建elk平台
    SpringBoot:关于默认连接池Hikari的源码剖析
    git常用命名:自用,持续更新
    linux常用命名汇总:自用,持续更新
    升级项目版本:SpringBoot1.5.x到SpringBoot2.0.x
    Python学习第十五课——类的基本思想(实例化对象,类对象)
    Python学习第十三课——re(正则表达式)模块
    Python学习第十四课——面向对象基本思想part1
  • 原文地址:https://www.cnblogs.com/yunis/p/3805522.html
Copyright © 2011-2022 走看看