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

来源:互联网 发布:云计算名词解释 编辑:程序博客网 时间:2024/04/30 12:45

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


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

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

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

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

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

(lldb) watchpoint listNumber of supported hardware watchpoints: 4Current 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: 10Watchpoint 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个.

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

1 0
原创粉丝点击