20

有什么方法可以跟踪 Xcode 中的变量更改或内存更改?我正在寻找像 Visual Studio 的数据断点这样的功能。

我想知道我的对象的视图框架在哪里被改变。我想在成员变量处设置断点并运行它。然后我可以确定它在哪里发生了变化。

4

4 回答 4

21

Xcode 使用gdb(或lldb,但这是另一回事)来实现其调试功能。gdb具有设置硬件观察点的能力,因此 Xcode 也是如此。

是对内存错误进行一般调试的有用页面。Xcode 的调试控制台窗口实际上只是一个gdbshell,你可以随意输入命令。乐于助人的 Quinn Taylor 在这篇相关文章中解释了如何做到这一点。

如果你不想gdb直接交互,你可以在 Xcode 的调试窗口中右键单击一个变量并选择“Watch Variable”。每当您的变量值发生更改时,Xcode 都会提醒您。

于 2011-01-27T02:33:56.743 回答
13

您可以使用硬件观察点


您必须获取要跟踪的变量的地址(输入p &my_vargdb 提示符)。

它会打印出类似0x12345678.

  • 使用 gdb:输入watch *(int *)0x12345678.

  • 使用 lldb:(watch set expression (int *)0x12345678w s e (int *)0x12345678

这假设您的变量是int. 它将在此地址上创建一个硬件观察点。


希望这可以帮助。

于 2013-04-03T09:30:39.803 回答
1

是的。

在“运行”菜单下有“调试器”,它为 gdb 提供了一个可视化的前端。

此外,Build and Run 按钮旁边还有一个断点按钮。您可以单击它并在 Run > Manage Breakpoints 下管理您的断点。

于 2011-01-26T03:33:19.787 回答
0

我知道这篇文章很旧,但如果你仍然想知道我在这里发布了一个详细的答案:在 XCode 6 中,你如何在不停止执行的情况下设置观察点?

于 2015-02-20T11:15:26.980 回答