博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Xcode中使用数据(硬件)断点调试
阅读量:6820 次
发布时间:2019-06-26

本文共 1095 字,大约阅读时间需要 3 分钟。

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.

如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! 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个.

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

你可能感兴趣的文章
一步一步写jQuery插件
查看>>
MySQL(错误1064)
查看>>
js获取请求路径中参数值
查看>>
Asp.net Web Api进行Nunit测试
查看>>
今日题解------codeforce 893d
查看>>
magento如何安装中文语言包
查看>>
最新黑马《十次方》社交项目视频教程
查看>>
动态Lambda表达式打印HelloWorld
查看>>
leetcode551
查看>>
leetcode421
查看>>
015——数组(十五)sort natsort shuffle natcasesoft array_multisort
查看>>
Java 基础知识点
查看>>
【第五组】用例文档+功能说明书+技术说明书 2017.02.26版
查看>>
ramips芯片,openwrt安装njit8021xclient
查看>>
day7-20180414笔记
查看>>
Delphi XE5 android openurl(转)
查看>>
十六转八进制
查看>>
一个文学青年的复活——编程就是用计算机语言写文章
查看>>
android 伸缩控件ExpandableListView 展开失败的可能原因。
查看>>
AS(Android Studio)不停的updating indices
查看>>