Xcode调试(断点)问题

3
我正在使用Xcode 6.4编写一个iOS 8.4的Objective-C应用程序。我有一个变量(实际上是数组中的一个项目)以意想不到的方式发生了变化。
为了找出是什么问题,我想要一种方法,使程序在变量即将发生变化时(或刚刚发生变化时),通过某种“特殊断点”暂停。
如果可以的话,如何实现呢?
1个回答

3
你需要的是观察点(请参见“设置观察点”这里)。基本上,它们会监视内存中的写入操作,并在发生时中断程序。我认为你只能从调试控制台而非Xcode UI中设置它们:
(lldb) watchpoint set variable myinstancevar

或者

(lldb) w s v myinstancevar

@Pauls,那是错误的,任何对变量自身的更改都会停止程序。例如,在某个类中添加简单整数并在几个不同的地方增加增量。设置观察点,您会发现每次调用增量程序都会停止(并显示旧值和新值)。 - Miknash
我刚刚测试了一下,不起作用。我在一个类中创建了一个可变数组。我在该变量中添加了一个监视点。然后,当我滚动时,我正在向该数组中添加对象以检查它是否停止。但是它没有停止。你能提供一个示例吗? - Pauls
@Pauls 我的假设是 OP 会在被添加到数组中的对象上设置监视点。 - trojanfoe
我正在研究这个问题,但似乎无法观察数组的元素,除非需要一种我尚未发现的特定语法。当我观察数组本身时,我没有捕捉到任何变化。 - Michel
我终于成功了,使用数组中元素的地址。 - Michel
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接