无法在gdb或lldb中设置观察点

时间:2012-05-03 08:11:26

标签: ios cocoa-touch debugging gdb lldb

我正在尝试在设备上调试我的应用时设置观察点。我无法在gdb或lldb上设置它。

在lldb上,即使this page提到它存在,我也没有在调试器中看到watchpoint set选项。当我尝试运行watchpoint set时,lldb告诉我该命令无效。

在gdb上,我确实设置了观察点(使用watch var),但是当我尝试继续执行时,我得到了这个:

Can't set hardware watchpoints without the 'Z2' (write-watchpoint) packet.

我在gdb窗口中看不到其他输出,也不认为我可以与它进行交互。该应用程序此时也保持挂起状态。

我在OS X Lion上使用Xcode 4.3.2(4E2002)。我尝试在iOS 5.1和iOS 5.0.1的设备上设置观察点,但两者都遇到同样的问题。

2 个答案:

答案 0 :(得分:7)

在Xcode 4.5之前,使用lldb或gdb进行iOS开发不支持观察点。

使用Xcode 4.5,它们支持使用lldb进行iOS和Mac OS X调试。

在Xcode中,在本地窗口中,您可以右键单击/按住Control键并单击某个变量,并且可以选择在其上设置观察点。从调试器控制台,要在名为foo的变量上添加观察点,您可以执行

(lldb) watchpoint set variable foo

最短的明确命令在lldb中始终有效,所以这会做同样的事情,

(lldb) w s v foo

当前的x86和arm cpus仅支持同时设置4个观察点。

答案 1 :(得分:0)

我在Apple Dev论坛的某个地方读到了这个:  “set命令存在于trunk版本中,但尚未存在于Xcode版本中。”

我也遇到了这个问题,我想要监视一个变量并查看其值的变化......