使用XCode调试,笔记
设置debugger的布局
可以通过Run > Debugger Display > Horizontal Layout设置成水平布局,这是xcode 的默认布局,也可以通过Run > Debugger Display > Vertical Layout来设置成垂直布局。区别在于,垂直时,位于原来中间的代码区移到右边。相对原来的,我更喜欢垂直布局~
水平布局
垂直布局
查看全局变量
Variable中现实了当前的变量的值,类型等等。其中有一个Global组显示了当前的全局变量。默认为空,我们可以通过Run > Show > Global Variables来选择要显示的全局变量。
设置断点
断点非常有用。按照作用范围,xcode 包括2类断点。一种是Project Breakpoints,另一种是Global Breakpoints。如下图:(可以通过 Run > Show > Breakpoints 来显示)
两者的区别在于,Project Breakpoints只作用在当前的project中。而Global则是作用在当前用户的所有project中。
按照类型分,xcode 包括4种类型的断点:
- File Line :运行到文件的某一行触发
- Symbolic:按照特定的条件触发
- Objective-c exception: 抛出OBJC异常时触发
- C++ exception:抛出C++异常时触发
每一个断点前的小三角可以打开一个设置关联这个断点行为的窗口。比如说声音,applescrpit等等
每个断点前的图标如果是个文件(
)的话,表示这个断点是File Line或者C++ exception,如果是蓝盒子(
),则是Objective-c exception或者是Symbolic
最右面的方形选择框有点特别,如果选择了这个框,那么xcode 会停在断点处,运行预先设置好的事件,然后自动继续运行程序。如果没有选,那么xcode 停在断点处后,先运行设置好的事件,然后等待用户决定是否继续运行。
Condition处可以设置这个断点的触发条件。比如说 i==24表示当i等于24时这个断点才会被触发。而Ignore Count处则是设置这个断点处被忽略多少次。比如说这里如果设置成5, 则表示第六次遇到这个断点时才触发。
如何设置断点
设置一个File-Line断点。
这个比较简单,只需要在那一行前点一下,出现一个箭头。 如:
设置Symbolic断点:
有以下两种方法:
- 选择要设置的那一行,然后Run>Manage Breakpoints>Add Symbolic Breakpoint, 然后输入方法或者函数名
- 打开断点窗口,双击”Double-Click for Symbol”,然后输入触发时的函数路径。
比如说我们可以设置为 -[NSException raise], 这样当调试时遇到NSException的异常时自动中断。
给@Synthesize 设置断点:
有时候可能需要知道什么时候,什么情况下读取或者修改了某个成员变量的值。因此我们需要给这个成员变量设置一个断点,当调试时,每次遇到读取或者修改这个成员变量,就触发这个断点。
设置的方法非常简单。只需要在那个变量的@synthesize那一行按照file-line的断点设置一样设置一个断点,当运行调试时,会自动弹出一个窗口,询问你要对setter还是getter还是这2者设置断点。如下图:
需要注意的是,如果修改了变量名,必须要重新设置一遍。
添加Objective-C Exception Breakpoints
这个功能相当有用。设置起来出奇的简单。选中菜单Run>Activate/Deactivate下的Stop on Objective-C Exceptions. 如图:
使用预定义的breakpoints.
XCode里已经预定义了很多的breakpoint模版。在想要设定的代码行前右键,Built-in Breakpoints,
预定义的breakpoint写的很清楚明白。
- Log breakpoint and arguments and auto-continue: 打印当前的函数的参数并自动继续执行。
- Log beakpoint and hit count and auto-continue: 打印出当前断点已执行过的次数并继续执行。
- Log stack trace and auto-continue: 打印当前的堆栈调用,并继续执行。
- Sound out and auto-continue: 响一声并接着执行。
- Print self and auto-continue: 打印当前函数所属的类,并继续执行。
- Speak breakpoint and hit count and auto-continue: 读出断点,次数并继续执行。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: 粉色 X 袭过,价值链接一切:ZadigX 线上发布会回顾
Zadig 开源交流:加入 Zadig 技术交流群🔥 (Zadig on Github;Zadig on Gitee) ZadigX 企业咨询:提交您的具体需求 Zadig 开源 2 年以来,KodeRover 始终追求“让今天的工程师,能像伏尔泰笔下古巴比伦…