XCode 6 如何在不停止执行的情况下设置观察点?

In XCode 6 how can you set a watchpoint without stopping execution?

您可以按照以下步骤轻松地在 XCode 中设置观察点(顺便说一句,如果有更简单的方法,我想知道...):
- 运行 你的程序
- 在使用变量的代码中设置断点
- 到达断点时,右键单击变量和 select 'Watch "nameOfTheVariable"'
- 继续执行。

唯一的问题是每次变量值改变时执行都会停止。我希望 XCode 继续执行而不停止,即仅在控制台输出中显示值更改。
这个功能似乎在命令行模式下可用,虽然我最初想避免它,但我发布了一个使用该模式的解决方案(见下文),因为它似乎是做我想做的事情的唯一方法,即在显示变量的同时继续执行变化。

好吧,看来实现此目的的唯一方法是使用 LLDB 命令行。因此,对于那些像我一样从未使用过它的人,这里提供了一种逐步(实际上相当简单)的方法来使用它并在不停止执行的情况下观察变量:

  1. 在 Xcode 设置断点(单击源代码行的左侧),其中使用了您要查看的变量(在范围内),运行 您的代码,直到它到达断点。
  2. 在控制台视图中(右下角显示的小 window,您可以在其中显示控制台内容)您应该看到 (lldb) 提示符。这是您输入以下命令的地方:
    w s v stuff (or watchpoint set variable stuff) 其中stuff是你要观察的变量名
    w c a (or watchpoint command add) 进入脚本模式,在'>'[=43之后每行输入一个命令如下=]
    p stuff (or print stuff) 显示新的东西变量值
    c(orcontinue)继续执行
    DONE 完成这个小脚本(注意大写字符!)

就是这样!您可以删除断点并继续执行。从那时起,每次更新变量 "stuff" 时都会在控制台中显示消息,而不会停止代码的执行(当然这可能会减慢一点速度,但这通常并不重要)。

观察点就像一个断点,当正在观察的变量的值被更新时,它会被击中。 要设置它,请按照以下步骤操作:

1.Set 一个断点,以便调试器中的变量视图显示您要监视的变量。 2.Right 单击变量并 select 观察 "variable name"。 3.This 每当变量的值改变时将停止执行。

观察点现在将开始显示在调试导航器中。 要删除它,只需将它拖向编辑器即可。

PS : 这只是一个更智能的实现 didset 版本,用于变量和其中的设置和断点。