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

ios开发之--调试方法的更多相关文章

  1. iOS-提高iOS开发效率的方法和工具

    提高iOS开发效率的方法和工具 介绍 这篇文章主要是介绍一下我在iOS开发中使用到的一些可以提升开发效率的方法和工具. IDE 首先要说的肯定是IDE了,说到IDE,Xcode不能跑,当然你也可能同时 ...

  2. iOS开发——实用篇&提高iOS开发效率的方法和工具

    提高iOS开发效率的方法和工具 介绍 这篇文章主要是介绍一下我在iOS开发中使用到的一些可以提升开发效率的方法和工具. IDE 首先要说的肯定是IDE了,说到IDE,Xcode不能跑,当然你也可能同时 ...

  3. PyCharm Django项目开发的调试方法

    下面介绍两种PyCharm Django项目开发的调试方法: 方法一: 1. 使用PyCharm 自带的django项目Debug工具, 当然前提条件是django项目环境已经搭建好了. 2. 在代码 ...

  4. iOS开发中调试小技巧

    对于软件开发而言,调试是必须学会的技能,重要性不言而喻.对于调试的技能,基本上是可以迁移的,也就是说你以前在其他平台上掌握的很多调试技巧,很多也是可以用在iOS开发中.不同语言.不同IDE.不同平台的 ...

  5. <转>提高iOS开发效率的方法和工具

    介绍 这篇文章主要是介绍一下我在iOS开发中使用到的一些可以提升开发效率的方法和工具. IDE 首先要说的肯定是IDE了,说到IDE,Xcode不能跑,当然你也可能同时在使用AppCode等其他的ID ...

  6. 提高iOS开发效率的方法和工具

    http://www.cocoachina.com/ios/20150717/12626.html 介绍 这篇文章主要是介绍一下我在iOS开发中使用到的一些可以提升开发效率的方法和工具. IDE 首先 ...

  7. iOS - 开发中调试小技巧

    对于软件开发而言,调试是必须学会的技能,重要性不言而喻.对于调试的技能,基本上是可以迁移的,也就是说你以前在其他平台上掌握的很多调试技巧,很多也是可以用在iOS开发中.不同语言.不同IDE.不同平台的 ...

  8. iOS开发的调试技巧

    关于本文: 1.模拟器的快捷键 2.覆盖安装注意事项 3.给模拟器相册增加照片 4.模拟器中程序的数据 5.安装旧版本的模拟器 6.模拟慢网速 7.异常断点与符号断点 1.模拟器的快捷键 常用的模拟器 ...

  9. iOS开发Safari调试WebView页面

    App混合开发现已是常态,不过作为app端开发人员,对H5页面的使用,可不能简单的局限于使用,一些简单的调试方法还是有必要了解的. 关于如何在使用webview过程中,如何对web内对内容进行调试,这 ...

随机推荐

  1. HTML select 选中触发事件

    $(function () { $("#cityidchange").change(function (data) { var cityid = $("#cityidch ...

  2. javascript控制页面(含iframe进行页面跳转)跳转、刷新的方法汇总

    一.JS方式的页面跳转1.window.location.href方式    <script language="JavaScript" type="text/ja ...

  3. SparkR(R on Spark)编程指南 含 dataframe操作

    SparkR(R on Spark)编程指南 Spark  2015-06-09 28155  1评论 下载为PDF    为什么不允许复制 关注iteblog_hadoop公众号,并在这里评论区留言 ...

  4. [hadoop读书笔记] 第三章 HDFS

    P49 当数据集的大小超过一台计算机存储能力时,就有必要对数据集分区(partition)并将分区存储到若干台独立的计算机上. 管理网络中跨多台计算机存储的系统就叫分布式文件系统  Distribut ...

  5. HBase二级索引与Join

    转自:http://www.oschina.net/question/12_32573 二级索引与索引Join是Online业务系统要求存储引擎提供的基本特性.RDBMS支持得比较好,NOSQL阵营也 ...

  6. python递归评论tree形图代码

    首先我有必要记录下来这段代码,因为我遇到了这个问题, 然后没有解决 后来, 前段说我找到一段代码给我看看, 我并没有在意, 然后她实现了, 她实现了,她真的实现了, 我... 为了感谢她,我陪她玩了一 ...

  7. Numpy 产生随机的一维, 二维数组代码

    而Python内置的random模块则只能一次生成一个样本值.从下面的测试结果中可以看出, 如果需要 产生大量样本值,numpy.random 快了不止一个数量级: 部分numpy.random 函数 ...

  8. android 8 wifi 信号等级

    wifi信号等级 /frameworks/base/wifi/java/android/net/wifi/wifimanager.java calculateSignalLevel为计算信号等级函数, ...

  9. FusionCancer-人类癌症相关的融合基因的数据库

    RNA-seq 测序可以用于融合基因的发现,在过去的十几年里,RNA-seq 测序数据不断增加,发现的融合基因的数据也不断增加: FusionCancer 是一个人类癌症相关的融合基因的数据库,利用N ...

  10. Java对象的序列化与反序列化-Json篇

    说到Java对象的序列化与反序列化,我们首先想到的应该是Java的Serializable接口,这玩意在两个系统之间的DTO对象里面可能会用到,用于系统之间的数据传输.或者在RPC(远程方法调用)时可 ...