Condational Breakpoints(条件断点)
普通断点只要执行到断点所在行就会停止程序,但是有时候我们想当满足一定条件时才停止程序。这个调试技巧在当你想要捕获一个循环中的变量的特定值或者一些不常发生的情况时是非常有用的,而不用你每次迭代都停止来查看。
怎样开启条件变量?
添加一个普通断点
右键点击断点选择
Edit Breakpoint
打开断点编辑器,你可以在这里设置断点条件(以及一些其他的断点设置),设置好之后就可以见证奇迹了。
断点条件拓展
Global BreakPoint(全局断点)
当应用产生异常或崩溃时Xcode一般会直接跳到主函数。但这并不是我们想要的, 我们想要的是产生异常或崩溃能够停留在异常或者崩溃发生的地方而不是跳转到主函数。幸运的是有一个方法可以做到。
Xcode有一个beautiful的功能叫做异常断点,允许我们在异常发生时在异常发生的地方放一个断点。你可以指定具体的异常也可以指定所有的异常。
怎样开启异常断点呢?
- 1.工程切换到异常浏览窗口,点击下方左侧的
Add Breakpoint
按钮 - 2.选择
Add Exception Breakpoint
确保可以捕获所有异常。
捕获到异常效果如下:
GDB命令来调试程序
一般情况下,我们在程序代码中添加断点,是为了通过Xcode提供的variables view
(该view在Xcode底部console旁边)来查看变量的状态。理论上,该窗口可以显示出与当前上下文相关的所有值的状态。实际上,这有点小问题,有时候断点过了之后,该窗口并不会进行相关的更新。但是Xcode有一个很不错的功能是:我们可以使用控制台的命令来检查某个特定的对象——这对于调试程序非常有用。
po 命令
为print object
的缩写,显示对象的文本描述(显示从对象的description消息获得的字符串信息,如果对象不存在的话会打印出nil)
处理scalar值时使用p
输出view的层级关系recursiveDescription
由于该指令是私有API,所以不会智能提示。需要我们手打出来。
其它命令(help)
|
|
再一次感谢您花费时间阅读这篇文章!
微博: @Danny_吕昌辉
博客: SuperDanny