Xcode调试技巧

一. 断点

Xcode支持很多种不同类型的断点,包括普通断点、符号断点、异常断点、watch断点、OpenGL ES Error 断点和Test Failure 断点。(后两者不常用)

1. 普通断点:

下普通断点很简单,找到你要下断点的代码行,点击编辑区左边的行数处即可;或者使用快捷键直接command + \


特点: 当程序运行到此处的时候将会暂停

2. 符号断点:

符号断点其实就是对一个特定的函数/方法名下断点,在导航区选择断点tab页 -> 点击最下面的加号 -> Add Symbolic Breakpoint


设置符号断点可以输入类名+方法名,也可输入方法名,Xcode会自动匹配在不同类中同名的方法进行断点。


特点: 一旦所填写的方法被调用,就会暂停。

3.异常断点:

异常断点在调试时如果程序抛出异常,导致程序退出,就会暂停。导航区 -> 断点tab –> 左下角加号 -> Add Exception Breakpoint


特点: 一旦程序异常就暂停,能立马定位问题,为比较常用的一种断点。

4. watch断点

watch断点就是当某个变量发生改变的时候触发的断点。在Xcode的watch窗口-> 右键需要watch的变量 -> watch “XXX”


当所watch的值发生变化时调试器会自动暂停。并打印信息

**特点: 当要观察某个值是否发生变化,可使用watch断点 **

5. 其他断点(不常用)

OpenGL ES Error Breakpoint 以及 Test Failure Breakpoint
OpenGL ES Error Breakpoint :主要是OpenGL ES的断点调试
Test Failure Breakpoint :这个类型的断点会在test assertion 失败的时候暂停程序的执行。

6. 编辑断点:

右键普通断点 -> Edit Breakpoint 添加条件

断点的属性以及说明

属性 说明
Condition 输入条件表达式,满足条件的时候断点就会生效。
Ignore 在这里可以设置忽略断点次数。
Action 一些断点触发时的操作。
Options 勾选Automatically continue after evaluating actions之后程序会在断点产生后继续运行。

7. 断点后的action:

断点后的action,其实就是当断点被触发可以执行一些操作。右键断点 -> Edit breakpoint -> Add action

Action的类型很多,有Debugger Command、Log Message、Apple Script、Shell Command等,常用的有Debugger Command和Log Message


Action对于调试是非常有用的,比如你需要在断点的地方频繁打印某一对象时,你不用新加log,然后重新编译,直接加一条Debugger Command就可以,下图为打印self.string信息

7.1 用于action的Debugger Command常用命令

1.po命令 : 打印对象信息


2.expr命令:可以在调试时动态的执行表达式,同时打印出结果。常用来动态修改变量的值。

3.call命令 :动态调用函数,可以在不增加代码,不重新编译的情况下动态调用一个方法。

二. UI调试

1.控件信息

可以使用上述的po命令以及expr命令来查看、修改控件属性。

2.快速预览

Xcode5之后支持在调试时对变量进行快速预览,调试时将鼠标放在变量上,然后点击快速预览按钮即可看到控件的显示。


3. 查看整体UI层级结构

点击在Xcode的watch窗口上方的debug view hierarchy 按钮


之后便可以观察当前应用窗口的层级结构

注意:在面板底部左侧有两个按钮。如下图所示,取消对这两个按钮的选定,否则会隐藏一些视图。

3.1 探索视图层次

对于如何查看某个视图,可以选定查看的视图,然后观察跳转栏(Jump Bar)比如当选定最底部的视图,则Jump Bar显示


当各个视图之间间距太小,可以使用左下方的slider来控制视图间的间距.
同时若滚动右下方的滑块,则可以隐藏不同层次的视图

3.2 查看视图

按下cmd + 6 调出导航栏的Debug navigator,选定要查看的视图。或者直接在编辑区选定。


接着使用cmd + option + 4打开工具区的Size Inspector,便可查看该视图的边界、位置、锚点以及Auto Layout约束列表。

也可以通过cmd + option + 3切换至Object inspector。你会看到一个选定对象的各项信息,比如背景颜色,tag等等。

三. 参考

本篇为作者认为常用的一些调试方法,若想深入了解,可以查阅以下参考文档。其次若有不足可以指出、探讨。

XCode基本使用及调试技巧

只会左键断点?是时候试试这样那样断点了

breakpoints、lldb 和 chisel 的详解

详解Xcode 6的视图调试

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 剑未配好,出门已是江湖。 最近一直没有更新简书是因为在开发和测试阶段,有任务,没有进行学习,不过在做任务的时...
    和珏猫阅读 8,251评论 9 75
  • 前言 Xcode调试(debug)是每位IOS开发者经常做的事,很基础也很重要,学到一些调试技巧无疑会给工作带来很...
    xmy1012阅读 1,568评论 0 1
  • 作者原文链接:点这里 一、普通操作: 1.打断点 当然也还可以监视某个变量! 在对象视图中,右键某个对象,点击“W...
    DestinyFighter_阅读 1,719评论 0 4
  • 程序员日常开发中有大量时间都会花费在 debug 上,从事 iOS 开发不可避免地需要使用 Xcode。这篇博客就...
    kenny肉桂阅读 603评论 0 5
  • Python中的random模块用于生成随机数。下面介绍一下random模块中最常用的几个函数。 random.r...
    老王叔叔阅读 4,709评论 0 0