Xcode中使用数据(硬件)断点调试

简介:

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;)


在Xcode的GUI界面中只能添加软断点,而无法增加硬断点.但是在dbg窗口中我们可以使用llvm的watchpoint指令添加硬件断点,也就是所谓的数据断点.

我们可以给类的实例变量设置硬件断点,可以选择监视类型是read,write或者是read_write.

下面举一个例子:比如我们的target对象中包括一个PlayerData对象,其中一个成员变量为NSInteger型的hp和mp实例变量.我们来对mp设置读断点,对hp设置读写断点,指令如下:

watchpoint s variable -w read target->_playerData->_mp
watchpoint s variable -w read_write target->_playerData->_hp

我们可以用list命令看一下已经设置的硬件断点:

(lldb) watchpoint list
Number of supported hardware watchpoints: 4
Current watchpoints:
Watchpoint 2: addr = 0x7fca87d31ac0 size = 8 state = enabled type = rw
    declare @ '/Users/apple/src/xcode_src/iOS/goodPrj/SoulOfPanda.spritebuilder/Source/BattleStage.m:209'
    watchpoint spec = 'target->_playerData->_hp'
    new value: 10
Watchpoint 3: addr = 0x7fca87d31ac8 size = 8 state = enabled type = r
    declare @ '/Users/apple/src/xcode_src/iOS/goodPrj/SoulOfPanda.spritebuilder/Source/BattleStage.m:209'
    watchpoint spec = 'target->_playerData->_mp'
    new value: 15

除了显示当前存在的硬件断点之外,可以看到该命令也显示出系统支持最大的硬件断点数为4个.

如果遇到一些奇怪的和数据相关的问题,可以尝试使用数据断点来调试.硬件断点是一种强大的调试手段.

相关文章
|
缓存 算法 数据库
数据映射组件NewLife.XCode优势
数据映射组件XCode优势 XCode是一个超越了ORM范围的映射组件,除了对象到关系数据库的映射外,还有到网络和其它二进制形式等的映射,所以称之为数据映射组件。 相对于国内外其它ORM,XCode具有以下优势: 1,采用最好的分页算法,高效处理海量数据。
1238 0
|
SQL 测试技术 iOS开发
6,ORM组件XCode(撬动千万级数据)
有了前面的《动手》,基本上可以进行开发了。本篇我们来试试XCode的基本功功力如何,测试在单表一千万业务数据的环境下查询的速度,添删改等没什么可测试的。其实应该说是XCode开发模式的功力,XCode组件仅仅是处理分页而已,而XCode开发模式为高性能开发提供了更多的建议。
1009 0
|
7月前
|
jenkins Unix 持续交付
个人记录jenkins编译ios过程 xcode是9.4.1
个人记录jenkins编译ios过程 xcode是9.4.1
108 2