如果类中的实例variables的值发生了变化,我该如何触发断点?
说我有一个variables, self.position
,我怎么让Xcode破坏,只要它改变了它的值(一些方法可以改变它)。
有条件的打破:
- Cmd +选项点击断点
- 像这样添加一个rest条件:
为了打破每一次的价值已经改变:
- 实现简单的setter(和getter为了干净的代码)。
- 添加断点到setter。
如果你想看看谁调用了setter,只要看一下堆栈跟踪中的下一行(在我的例子中是viewDidLoad):
更新:
添加一个观察点
- 打破任何地方,
(lldb)
提示显示在控制台 - input
watchpoint set variable _position
(用你想观看的iVarreplace_position) - 记下为新创build的观察点分配的观察点编号。
- 修改条件中断的观察点:
watchpoint modify -c "_position < 0.5" 1
其中引用中的expression式是条件,最后的数字是#3中记下的观察点编号。 - 继续运行。 只要值符合条件,就会中断,您将能够检查堆栈帧以了解来电的来源。
那么简单的方法就是在监视窗口中右键单击variables并select监视variables选项。 Xcode会在数值改变的时候提醒你。
或者你可以看看键值观测 。
设置一个符号断点。 转到断点导航器,单击+,单击“添加符号断点”。 在第一个字段中input – [YourSubclassNameHere setPosition:],添加你想要的其他设置,然后在对话框外单击。
你可以覆盖position
的setter当它设置variables时有一个断点。