使用XCode调试

转载 2012年03月28日 13:25:16

设置debugger的布局

可以通过Run > Debugger Display > Horizontal Layout设置成水平布局,这是xcode的默认布局,也可以通过Run > Debugger Display > Vertical Layout来设置成垂直布局。区别在于,垂直时,位于原来中间的代码区移到右边。相对原来的,我更喜欢垂直布局~

查看全局变量

Variable中现实了当前的变量的值,类型等等。其中有一个Global组显示了当前的全局变量。默认为空,我们可以通过Run > Show > Global Variables来选择要显示的全局变量。

设置断点

断点非常有用。按照作用范围,xcode包括2类断点。一种是Project Breakpoints,另一种是Global Breakpoints。如下图:

 

屏幕快照 2011-01-28 下午08.47.39.png

两者的区别在于,Project Breakpoints只作用在当前的project中。而Global则是作用在当前用户的所有project中。

按照类型分,xcode包括4种类型的断点:

  • File Line :运行到文件的某一行触发
  • Symbolic:按照特定的条件触发
  • Objective-c exception: 抛出OBJC异常时触发
  • C++ exception:抛出C++异常时触发

每一个断点前的小三角可以打开一个设置关联这个断点行为的窗口。比如说声音,applescrpit等等

屏幕快照 2011-01-28 下午08.51.17.png

每个断点前的图标如果是个文件屏幕快照 2011-01-28 下午09.08.11.png的话,表示这个断点是File Line或者C++ exception,如果时蓝盒子屏幕快照 2011-01-28 下午09.09.09.png,则是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者设置断点。如下图:

@synthesize Breakpoint

需要注意的是,如果修改了变量名,必须要重新设置一遍。

添加Objective-C Exception Breakpoints

这个功能相当有用。设置起来出奇的简单。选中菜单Run>Activate/Deactivate下的Stop on Objective-C Exceptions. 如图:

Stop on ObjC Exceptions.png

使用预定义的breakpoints.

XCode里已经预定义了很多的breakpoint模版。在想要设定的代码行前右键,Built-in Breakpoints,

屏幕快照 2011 01 31 下午10 13 48

预定义的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: 读出断点,次数并继续执行。



xcode之debugger

xcode4.0之前的debugger是GDB,xcode4.0 and up版本调试器Debugger是lldb。 GDB: GDB(GNU symbolic debugger)是GNU开源组...
  • ojl12345
  • ojl12345
  • 2014-02-09 14:00:05
  • 2125

xcode debugger的坑

使用debugger打印网络json数据时经常会显示no summary,本以为没存进来,结果上网查了加调试才发现是debugger的bug。。。。。。。 以后调试还是要多在控制台po一下,不然容易...
  • lht898000123
  • lht898000123
  • 2017-04-24 13:31:33
  • 215

iOS开发 - Xcode的Debug中查看数据细节的方法

众所周知,在Xcode中的IDE环境中编译和调试程序十分方便,我们在某行代码中设置好断点,当程序执行到该处时,只需要将鼠标放到代码段中的字符串等变量名上面,Xcode就能显示出变量的内容。但如果是一些...
  • a910577347
  • a910577347
  • 2017-03-08 18:05:24
  • 485

XCODE DEBUG 技巧

转自:http://www.cnblogs.com/SnowStark/p/5805979.html 抽刀断Bug 断点,(我求你们不要想到张敬轩,阿轩他容易么,小受又怎么了?你们这帮...
  • jeromexiong
  • jeromexiong
  • 2017-07-25 14:59:17
  • 785

Xcode6使用iOS7模拟器调试的方法

由于官方下载太慢而且经常会报错网络异常中断。 研究了一下。 之前下过ios7.1_simulator的dmg,安装之后,打开Xcode6还是选不了iOS7。 后来琢磨了一下,把Xcode5.1....
  • tcthek
  • tcthek
  • 2015-01-12 23:32:59
  • 1126

【IOS学习之工具学习】 Xcode7 / Xcode8 模拟器调试和真机调试

作为一名开发者,无论写多么好的代码,多么没有bug的代码,最终都要进行的一步,就是 调试,正常刚开始是模拟器调试,最后在真机调试,都调试ok后,再给测试人员 进行不同 机型 的调试 以及测试app在不...
  • ljb568838953
  • ljb568838953
  • 2016-09-30 17:16:05
  • 4232

XCode Debug

引言: 程序调试技巧在开发过程中起着举足轻重的地位,熟练的使用可以加快我们捕捉问题的速度. 毕竟BUG这个词是我们程序员一直要伴随的字眼,最关键的,人不是计算机,总有那么一点点小细节容易在我们慎密的思...
  • ysy441088327
  • ysy441088327
  • 2013-05-30 09:38:53
  • 12495

Xcode8新增Debug方法

原文链接 今年的WWDC介绍了不少新的调试方法,可以更加快捷便利的定位问题、分析问题、解决问题,下面就简单介绍一下。 循环布局检测 当你进入某个界面或点击某个按钮后,发现屏幕不再...
  • khlljm
  • khlljm
  • 2016-11-24 17:08:01
  • 833

xcode调试教程

传说中最强大的调试工具下面这个网站有比价不错的介绍 http://www.cnblogs.com/daiweilai/p/4421340.html 下面的内容均来自这个网站,转载过来方便自己查找 ...
  • qq_18811815
  • qq_18811815
  • 2016-01-13 14:55:32
  • 1842

Xcode 调试方法总结

前言:编写代码过程中出现错误、异常是不可避免的。通常我们都需要进行大量的调试去寻找、解决问题。这时,熟练掌握调试技巧将很大程度上的提高工作效率。接下来就说说开发过程中Xcode的调试方法。...
  • u013822374
  • u013822374
  • 2016-03-23 14:40:38
  • 6175
收藏助手
不良信息举报
您举报文章:使用XCode调试
举报原因:
原因补充:

(最多只允许输入30个字)