转载自:http://my.oschina.net/rareliu/blog/17332
可以通过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种类型的断点:
每一个断点前的小三角可以打开一个设置关联这个断点行为的窗口。比如说声音,applescrpit等等
每个断点前的图标如果是个文件()的话,表示这个断点是File Line或者C++ exception,如果是蓝盒子(),则是Objective-c exception或者是Symbolic
最右面的方形选择框有点特别,如果选择了这个框,那么xcode 会停在断点处,运行预先设置好的事件,然后自动继续运行程序。如果没有选,那么xcode 停在断点处后,先运行设置好的事件,然后等待用户决定是否继续运行。
Condition处可以设置这个断点的触发条件。比如说 i==24表示当i等于24时这个断点才会被触发。而Ignore Count处则是设置这个断点处被忽略多少次。比如说这里如果设置成5, 则表示第六次遇到这个断点时才触发。
设置一个File-Line断点。
这个比较简单,只需要在那一行前点一下,出现一个箭头。 如:
有以下两种方法:
比如说我们可以设置为 -[NSException raise], 这样当调试时遇到NSException的异常时自动中断。
有时候可能需要知道什么时候,什么情况下读取或者修改了某个成员变量的值。因此我们需要给这个成员变量设置一个断点,当调试时,每次遇到读取或者修改这个成员变量,就触发这个断点。
设置的方法非常简单。只需要在那个变量的@synthesize那一行按照file-line的断点设置一样设置一个断点,当运行调试时,会自动弹出一个窗口,询问你要对setter还是getter还是这2者设置断点。如下图:
需要注意的是,如果修改了变量名,必须要重新设置一遍。
这个功能相当有用。设置起来出奇的简单。选中菜单Run>Activate/Deactivate下的Stop on Objective-C Exceptions. 如图:
XCode里已经预定义了很多的breakpoint模版。在想要设定的代码行前右键,Built-in Breakpoints,
预定义的breakpoint写的很清楚明白。