Xcode Debug之添加断点

本文详细介绍了Xcode中如何使用断点进行高效调试,包括添加全局断点定位程序崩溃点,利用符号断点针对特定方法设置断点,为断点添加条件以提高调试效率,使用监控断点跟踪变量变化,以及利用日志信息断点无干扰地查看运行状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.添加全局断点(Add Exception Breakpoint)

通过添加全局断点,可以快速定位导致程序奔溃所在的代码行。 
在Xcode 中找到Breakpoint navigator(也可以通过快捷键command + 7跳转),在最下面点击加号,第一个就是: 
添加全局断点1 
这样就添加了一个全局断点: 
添加全局断点2 
程序只要一奔溃,就会触发该断点,并定位到导致奔溃所在的代码行。

2.添加符号断点(Add Symbolic Breakpoint)

Symbolic Breakpoint 是一种非常强大的断点。 
如上步骤选择第二项: 
添加符号断点1 
添加之后在Symbol一栏输入viewDidLoad。

这样一来,在程序中所有的viewDidLoad方法被调用时都会触发断点。

添加符号断点2

当然,我们页可以仅仅为特定的某个类的方法添加断点。在Symbol一栏类输入“[ClassName viewDidLoad]”(Objective-C)或“ClassName.viewDidLoad”(Swift)即可。

3.为断点添加条件(Condition)

有时候我们可能会在某个循环中创建断点,但一次又一次地点击continue知道我们想要的条件出现,显然是一种非常低效的方式。好在Xcode为我们提供了条件断点。

首先在下列代码中插入一个普通的断点

条件断点1

右键点击断点,选择Edit Breakpoint,在Condition一栏输入i > 90

这里写图片描述

这样一来,只有当程序运行满足条件之后才会触发断点了。

4.监控断点(Watch)

我们调试程序的大部分时候都是为了监控某个变量的变化,在代码中变量出现的地方添加断点不仅累而且还可能漏掉,事后还得一个一个删掉,实在很累。

我们可以通过为变量添加监控断点来简单地做到这一点。

找到变量第一次出现的地方,添加一个普通断点,进入debug模式后在Variables View中右键变量,选择Watch变量名。这样每一次该变量都会触发断点告知我们。

监控断点1

我们可以在Console中看到其变化。

监控断点2

5.日志信息断点

最常见的Debug方式应该就是NSLog或者println(swift)了。通常我们会通过这种方式来打印输出各种实例信息以检测程序运行状态。 
但这一调试方式也有很明显的缺陷:

  • 无法在运行时添加
  • 添加数量过多之后干扰视线,又需要麻烦地删除或注释掉
  • 会编译进App,在正式版本中需要关闭(当然我们可以通过宏来判断是否应该编译,但这会增加额外的操作不是吗)

所幸在Xcode中我们还有另外一种选项。 
在如下代码中添加一个普通断点,选择Edit Breakpoint,然后点击Add Action,选择Log Message,在输入框中输入 The number is:@sum@。

日志断点1

运行效果如下图所示:

日志断点2

这里因为有日志输出,所以我们可以勾选上最下面的Automatically continue after evaluating actions,这样这个断点就只会安安静静为我们输出日志了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值