zoukankan      html  css  js  c++  java
  • ios开发之--调试方法

    1. 概述

    2. 基本操作

    3. 全局断点

    4. 条件断点

    5. 开启僵尸对象

    6. LLDB命令

    概述

    在开发项目的工程中,肯定会遇到各种各样的bug,且大多数的bug都和自己有关;那么在和bug斗智斗勇的过程中,如果能快速准确的一击毙命呢,这个时候充分利用断点调试的优势,可以让我们能更加快速的定位bug,进而解决掉。

    基本操作

    如图1:

    以上就是打断点的基本操作。这是创建,再次点击就是临时取消这个断点,注意不是删除,长按并拖拽出去,这部操作是删除断点操作,当然也可以选中断点,直接右键也是可以实现上述操作!

    如图2:

    在上图中,选中lab,然后右键,点击红框,就完成了对lab对象的监视了!

    监视了lab后,每当lab更新,他的信息就会在控制台里面打印出来。

    在x-code下,打了断点自动进入debug模式,把断点移除就是release模式,项目运行碰到断点就自动停下来了,如图3:

    1、自动切换到debug的导航列表,可以看到系统运行情况,以及断点在线程队列中的位置

    2、控制导航工具条,打断点基本调试就靠他们了

      2.1、临时取消和使用断点

      2.2、跳过断点,正常运行,知道遇到下一个断点才会暂停

      2.3、进入到下一步,查找哪里出现问题,就靠他了,

      2.4、进入到方法里面,跳出方法

    3、这块区域就是控制程序,debug过程中的运行状态,以及相关的对象和变量,这里可以看到当前VC的self信息,以及创建的lab的相关信息

    4、这里是控制台,负责调试和打印相关信息,主要的战场

    以上就是基本的操作,必须要掌握的技能,也是用的最多的!

    全局断点

    也叫万能断点,有时候,程序中会出现崩溃,但是怎么点也点不出来,控制台没有任何打印,没有办法准确的锁定到崩溃的位置,只能通过上面的基本操作步骤,一步一步的进行下去,直至找到崩溃的位置!当然这种也是效率比较低的,这个时候设置一个万能断点可以自动定位到最先出错的代码哪一行,很方便的!如图4:

    步骤如上图,选中后,进入图5:

    这样的话,就加好了!

    条件断点

    这种断点好处就是效率,不想上数方法和NSLog一样,频繁的运行整个项目,你只需要在你想打印的地方设置条件断点,当满足条件后,就会停止,有的放矢,而不是一运行就是整个项目,只为看一个地方,

    代码片段:

    -(void)btnClick
    {
        for (char i = 'A'; i <= 'Z'; ++i) {
            NLog(@"%c
    ",i);
        }
    }

    具体如图6:

    进入图6:

    在上面的输入框里面填写条件:譬如 i == ‘B’,如下图:

    1、断点所在代码块

    2、具体的打印值

    3、控制台的运行,确实是到条件就会停止

    开启僵尸对象

    1、进入到设置页面

    2、选中

     3、对环境变量进行设置:菜单Product > Scheme > Edit Scheme

     对红先旁边的三个选项都勾上

     开启该选项后,程序在运行时,如果访问了已经释放的对象,则会给出较准确的定位信息,可以帮助确定问题所在。

    LLDB命令

    LLDB 是一个有着REPL的特性和 C++ ,Python 插件的开源调试器。LLDB 绑定在 Xcode 内部,存在于主窗口底部的控制台中。http://lldb.llvm.org/lldb-gdb.html 这里是一份lldb命令清单,列出了lldb可用的命令。

    使用po(print out)命令可用输出对象信息:

  • 相关阅读:
    水晶报表参数字段在代码中赋值
    存储过程编写经验和优化措施
    积分与排名
    大话处理器
    抽象数学
    开普勒:天空的立法者
    Scalable Face Image Retrieval with IdentityBased Quantization and Multireference Reranking
    配色辞典
    图像识别顶级赛事
    Information Geometry
  • 原文地址:https://www.cnblogs.com/hero11223/p/9200625.html
Copyright © 2011-2022 走看看