您当前的位置:首页 > 电脑百科 > 程序开发 > 移动端 > IOS

iOS常用调试方法:断点调试

时间:2019-05-16 14:58:35  来源:  作者:

奇技指南

IOS项目开发过程中,常用到静态分析(Analyze)、断点(BreakPoint)和控制台(Console)进行代码调试。本篇文章介绍Xcode常用调试方法之”断点调试“。

iOS常用调试方法:断点调试

一、简介

Xcode的断点功能是iOS开发者的常用功能。在代码编辑区内的左边栏上点击一下即可创建一个断点,当程序每次运行到断点,就会暂停下来,方便开发者调试。如下图:

iOS常用调试方法:断点调试

同时,开发者可以使用上图中用数字标记的工具辅助断点调试。各工具的作用如下:

  • 启用/禁用断点(点击后变灰色,所有断点失效;再点击变蓝色,所有断点生效)
  • 继续执行程序(点击后跳过本次断点,继续执行程序)
  • 执行下一步(点击后执行第37行代码)
  • 进入方法(点击后进入-afunction方法)
  • 跳出方法(在-afunction方法内部点击后回到第36行代码)

除了断点的基础用法,开发者还可以使用断点的进阶功能:编辑断点、异常断点和符号断点。

二、编辑断点

双击断点或者右键点击断点,选择Edit Breakpoint即可打开断点编辑页面。页面中包含Condition、Ignore、Action和Options四个部分,接下来逐一介绍。

1、Condition

Condition为条件。开发者可以在Condition输入框中设置触发断点的条件。比如,在一个for循环中,可以设置在满足i==5时才触发断点。如下图:

iOS常用调试方法:断点调试

2、Ignore

Ignore为忽略次数。开发者可以在Igore输入框中设置忽略此断点的次数。比如,设置Ignore为5,则在第6次执行到断点行时才会触发断点。

3、Action

Action为触发动作。Action可以添加多条,在触发断点后,会紧接着执行设定的Actions。Action有6种执行类型,其中较常用的有Debugger Command和Log message,如下图:

iOS常用调试方法:断点调试

1) Debugger Command

Debugger Command允许开发者设定一些LLDB命令,从而实现打印对象、修改变量等功能。如下图:

iOS常用调试方法:断点调试

2) Log Message

Log Message为提供了标准的文本输出格式。开发者可以按照格式设定在触发断点后输出的内容。其中,@exp@表示输出exp的内容,%B表示输出断点的名称,%H表示输出断点执行的次数。如下图:

iOS常用调试方法:断点调试

4、Options

Options控制在执行断点对应的Actions后是否自动继续执行程序。勾选后Options后,断点被触发后不进入Debug界面。

三、异常断点(全局断点)

开发者可以在Xcode中很方便地创建一个异常断点。如下图:

iOS常用调试方法:断点调试

当创建异常断点后,会显示一个名为All Exceptions的断点,所以也常称作全局断点。当程序抛出异常时会触发异常断点,并且大部分常见错误会被断点定位到对应的代码行,很方便调试。比如:设置全局断点后,我们写一段数组越界的代码,当运行到此代码时,就会断点到越界的那一行。如下图:

iOS常用调试方法:断点调试

而当去掉全局断点后再次运行程序触发越界代码后会崩溃断点到main.m中,而不会定位到越界那一行。如下图:

iOS常用调试方法:断点调试

四、符号断点

符号断点(Symbolic Breakpoint)是全局断点,可以针对某一个方法(函数)设置断点。开发者可以很方便地创建一个符号断点,如下图:

iOS常用调试方法:断点调试

与普通断点相比,符号断点的编辑界面多出来Symbol和Module两个输入框。

1、Symbol

开发者可以在Symbol输入框中设置断点出发方法/函数。如下图,在Symbol中设置一个方法/函数后,运行程序并执行到此方法时会触发断点。

iOS常用调试方法:断点调试

这里要注意Symbol中方法/函数的写法:

  • 方法(OC方法):用+指明是类方法,用-指明是实例方法,参数声明不可省略,:后不能有空格;
  • 函数:(C函数):直接写函数名即可。

2、Module

开发者可以在Module输入框中设置Symbol中的函数所在的库,以避免不同库中存在名字相同的方法/函数,默认不用填写。

3、Condition等功能

符号断点编辑页面除Symbol和Module外的Condition等功能用法与普通断点一致。比如,在Condition输入框中设置$arg3==nil && $arg4==nil,就会限制断点在满足第一个参数和第二个参数都为nil时才会被触发。如下图:

iOS常用调试方法:断点调试

总 结

Xcode的断点调试功能非常强大,开发者充分利用断点调试,再结合上丰富的LLDB调试命令,会在很多程度上提高开发效率。
 



Tags:   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
前言什么是数据脱敏数据脱敏是指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护常用脱敏规则替换、重排、加密、截断、掩码良好的数据脱敏实施1、尽...【详细内容】
2021-12-28  Tags:   点击:(3)  评论:(0)  加入收藏
河南最有名的“13碗面”,吃过10种以上的一定是地道河南人,你吃过几碗?河南位于黄河中下游,优越的地理位置和条件,让河南的种植业在全国脱颖而出,被称为全国的“粮仓”。小麦是河南...【详细内容】
2021-12-28  Tags:   点击:(3)  评论:(0)  加入收藏
在狗界中,有些狗狗比较凶残、霸道,今天我们就来说说被称为“犬中四煞”的4种狗,请认住它们的长相,看见了要绕路走! NO1:黑狼犬产地:中国寿命:11-12年黑狼犬是狼狗的一种,长大高大威猛...【详细内容】
2021-12-28  Tags:   点击:(3)  评论:(0)  加入收藏
协议下的体面离婚 2015年1月 方晴供职于一家外企,袁亮硕士毕业后开了家公司。两人相识、恋爱后走进婚姻殿堂。 方晴和袁亮的儿子小浩出生了。本该是其乐融融的三口之家,却在一...【详细内容】
2021-12-28  Tags:   点击:(2)  评论:(0)  加入收藏
中国人神话世界五千年到一万年之前到底是一个什么样的世界?相信这个问题应该是困扰了大家许久吧!其实这些问题可以从远古时代的三皇五帝开始说起,三皇五帝对于中国人的影响就如...【详细内容】
2021-12-28  Tags:   点击:(2)  评论:(0)  加入收藏
去年有个新闻,说的是一名印度女孩自小被欧洲有钱人家收养,长大后要回来给自己出生的村子捐钱做慈善。等她回村的时候,村里人专门为女孩修了一条路。表面上看,这貌似是个暖心的故...【详细内容】
2021-12-28  Tags:   点击:(3)  评论:(0)  加入收藏
日本在今年又给大家带来了一个巨大消息,日本著名的球星本田圭佑出资设立的一家公司,正式发售了飞行摩托车。 在之前可是在电视或者是电影中才能看到的,是具备了未来科幻的一个...【详细内容】
2021-12-28  Tags:   点击:(4)  评论:(0)  加入收藏
V社今日公布了2021年Steam最畅销游戏榜单,其中涵盖了本年度Steam上收入最高的100款游戏。为了得出每款游戏的总收入,Steam计算了2021年1月1日至2021年12月15日的游戏销售额、...【详细内容】
2021-12-28  Tags:   点击:(3)  评论:(0)  加入收藏
“都怪我一时糊涂铸下大错,这几年为了蒙混过关,拆东墙补西墙就怕被发现,我对不起信任我的领导同事,更对不起我的家人。”内蒙古某国有合资公司原出纳员包某在庭审现场听取公诉人...【详细内容】
2021-12-28  Tags:   点击:(2)  评论:(0)  加入收藏
2021年黄金价格下跌11.3%,黄金现在已经下跌了6.5%。白银价格一度下跌19.3%,白银现在已经下跌了15%。美元通胀。白银自2020年2月份以来,五家中央银行(Fed、欧洲中央银行、日本中...【详细内容】
2021-12-28  Tags:   点击:(3)  评论:(0)  加入收藏
▌简易百科推荐
前言最近对 WebRTC iOS 端源码进行了下载和编译,网上针对 WebRTC iOS 端的编译文章基本都是几年前的,有些地方已经不适用于最新版的 WebRTC 的编译,简单记录下载&编译的过程,以...【详细内容】
2021-11-10  anyRTC云平台    Tags:WebRTC iOS   点击:(38)  评论:(0)  加入收藏
IT之家 10 月 20 日消息,据 9to5 Mac 报道,继 iOS 15.1 RC、macOS Monterey RC 和其他更新发布后,苹果也向开发者提供了 Xcode 13.1 RC(候选版)。最新版本的 Xcode 现在可以在苹...【详细内容】
2021-10-20    IT之家  Tags:Xcode   点击:(88)  评论:(0)  加入收藏
IT之家 8 月 12 日消 苹果今日发布了一款新的开发者工具,旨在强制那些运行 iOS 15 和 iPadOS 15 的设备在使用不安全的 WiFi 网络或 WiFi 速度较慢时优先使用 5G 连接而不是...【详细内容】
2021-08-12    IT之家  Tags: iOS   点击:(151)  评论:(0)  加入收藏
IT之家4月7日消息 去年底,苹果公司要求应用商店所有第三方软件都必须增加 “隐私标签”以进一步保护消费者隐私安全。之后,谷歌旗下大量 iOS 软件长时间停止更新。而到了今年...【详细内容】
2021-04-07    IT之家  Tags:苹果隐私标签   点击:(309)  评论:(0)  加入收藏
你们好,这里是Seek思科,为你寻找苹果最新资讯、苹果隐藏技巧、苹果良心APP以及苹果优质配件。如果你需要这些,不妨点个关注。苹果已经官宣今年全球开发者大会将在北京时间6月8...【详细内容】
2021-04-02  Seek思科  今日头条  Tags:iOS15系统   点击:(370)  评论:(0)  加入收藏
Sideloadly安装unc0ver越狱 今天推荐比Altstore更简单的安装工具,Sideloadly 在QQ群文件下载最新版本安装, 然后直接打开,演示是Mac版本 Win是一模一样的, 不会出现报错2或...【详细内容】
2021-03-30  CydiaInstaller  今日头条  Tags:iOS自签名   点击:(1279)  评论:(0)  加入收藏
就在昨日,苹果对《App Store 审核指南》进行了2021年的首次重大更新。而此次更新主要是为了方便开发者为即将发布的OS版本中的新功能提供支持,更好地保护用户,并帮助开发者的Ap...【详细内容】
2021-02-03      Tags:App Store   点击:(205)  评论:(0)  加入收藏
不用不上架、不越狱、不要企业证书、永不掉签 只需一个h5网站地址 就能创建属于您自己的苹果IOS APP_多啦咪资源网无需越狱 无需企业证书 不用上架appStore 界面全屏 无广告...【详细内容】
2020-12-11      Tags:APP   点击:(177)  评论:(0)  加入收藏
iOS14支持把小组件添加到桌面,不过我们之前推荐的都是一些工具类的或者是桌面美化类的小组件,今天我们来看看目前有哪些我们常用的App已经支持把小组件添加到桌面了。 网易云...【详细内容】
2020-11-26      Tags:iOS   点击:(185)  评论:(0)  加入收藏
简介: 在平时的面试中,经常问到的高频面试题大概做了一个总结,希望能帮到你!一、如何绘制UIView?绘制一个UIView最灵活的方法就是由它自己完成绘制。实际上你不是绘制一个UIView...【详细内容】
2020-11-13      Tags:iOS   点击:(146)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条