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)命令可用输出对象信息:

  • 相关阅读:
    BZOJ 2034 【2009国家集训队】 最大收益
    vijos P1780 【NOIP2012】 开车旅行
    BZOJ 2115 【WC2011】 Xor
    BZOJ 3631 【JLOI2014】 松鼠的新家
    BZOJ 4717 改装
    BZOJ 2957 楼房重建
    BZOJ 4034 【HAOI2015】 T2
    BZOJ 1834 【ZJOI2010】 network 网络扩容
    BZOJ 2440 【中山市选2011】 完全平方数
    BZOJ 2733 【HNOI2012】 永无乡
  • 原文地址:https://www.cnblogs.com/hero11223/p/9200625.html
Copyright © 2011-2022 走看看