Xcode debug总结
参考公众号:WeMobileDev
一、断点
断点是我们平常开发,很重要的调试手段,多掌握几种断点的使用,会显著提高我们的开发效率。
1.普通断点
不是很想说这个,大家最常用到的,直接command + \,更直接的在编辑区域左边行号部分单击。
我不会把断点打在block的调用那里,由于会断两次,一次在调用,一次在block块里面。
2.条件断点
假如没有条件断点,我们通常会写if,在里面加log并且增加断点。
条件断点相对于普通断点只多了一个条件,断点处右键()–> edit breakpoint,新版本的xcode可以直接双击断点进行编辑:
增加条件
条件断点在循环里面,只解决一种情况时比较有用。或者者调试少量由于数据问题导致的崩溃时,很有用。
3.符号断点
符号断点其实就是对一个特定的函数名,进行断点。这里的方法,可以是OC方法名,也可以是C++的函数名。
在导航栏的断点页,点击左下角的+号,选中Symbolic Breakpoint… ,就增加了一个符号断点


可以只是一个方法名,也可以是[class method]的格式,只断点特定类中的方法,如下所示,会断点项目中所有的clickBtn方法:
断点所有的clickBtn方法
符号断点在调试少量没有源码的板块时比较有用,比方系统的库或者者少量第三方库,在相应函数下断点,可以大概摸清其运行流程。同时可以在断点处查看相应的参数信息。
4.异常断点
相似于增加符号断点的流程,在导航栏的断点页,点击左下角的+号,选中Exception Breakpoint… ,就增加了一个异常断点。
异常断点
有些第三方,会报C++的异常,但是并不会引起程序崩溃,所以我们可以选择OC异常来避免没有要的情况。
5.watch断点
顾名思义,watch断点,就是在某个变量发生改变时触发的断点。
在xcode的watch窗口–>右键需要watch的变量—> watch “__变量名”
watch断点
被watch的变量,在发生变化时,会触发断点,这在我们监听时是非常有用的。
需要注意的是,watch断点在arm CPU上最大个数是两个
6.线程断点
这个就比较生僻了,实际开发过程中,也基本不会遇到。
设置也比较复杂,控制台输出:
breakpoint set -f 文件名 -l 行号 -t 线程id
则会在指定线程断点。
二、断点后的action
断点后的action,其实就是断点被触发时执行的操作
进入断点编辑界面,点击add action。
屏幕快照 2018-10-25 下午12.26.19.png
action类型有很多种,常用的debugger command,可以po变量的值。或者者log message,直接输出信息。
勾选”Automatically continue after evaluating actions”后,会跳过断点,只执行action操作。
三、断点调试常用命令
1.p、po命令
用p命令查看基本数据类型的值
用po命令查看OC对象
2.expr/expression命令
用来动态修改变量的值,后面跟一个赋值指令
3.call命令
除了动态修改变量的值以外,xcode还支持动态调用方法。可以在不添加代码,不重新编译的情况下,调用方法。
如:call [self layoutSubview];
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Xcode debug总结