有什么方法可以跟踪 Xcode 中的变量更改或内存更改?我正在寻找像 Visual Studio 的数据断点这样的功能。
我想知道我的对象的视图框架在哪里被改变。我想在成员变量处设置断点并运行它。然后我可以确定它在哪里发生了变化。
有什么方法可以跟踪 Xcode 中的变量更改或内存更改?我正在寻找像 Visual Studio 的数据断点这样的功能。
我想知道我的对象的视图框架在哪里被改变。我想在成员变量处设置断点并运行它。然后我可以确定它在哪里发生了变化。
Xcode 使用gdb
(或lldb
,但这是另一回事)来实现其调试功能。gdb
具有设置硬件观察点的能力,因此 Xcode 也是如此。
这是对内存错误进行一般调试的有用页面。Xcode 的调试控制台窗口实际上只是一个gdb
shell,你可以随意输入命令。乐于助人的 Quinn Taylor 在这篇相关文章中解释了如何做到这一点。
如果你不想gdb
直接交互,你可以在 Xcode 的调试窗口中右键单击一个变量并选择“Watch Variable”。每当您的变量值发生更改时,Xcode 都会提醒您。
您可以使用硬件观察点。
您必须获取要跟踪的变量的地址(输入p &my_var
gdb 提示符)。
它会打印出类似0x12345678
.
使用 gdb:输入watch *(int *)0x12345678
.
使用 lldb:(watch set expression (int *)0x12345678
或w s e (int *)0x12345678
)
这假设您的变量是int
. 它将在此地址上创建一个硬件观察点。
希望这可以帮助。
是的。
在“运行”菜单下有“调试器”,它为 gdb 提供了一个可视化的前端。
此外,Build and Run 按钮旁边还有一个断点按钮。您可以单击它并在 Run > Manage Breakpoints 下管理您的断点。
我知道这篇文章很旧,但如果你仍然想知道我在这里发布了一个详细的答案:在 XCode 6 中,你如何在不停止执行的情况下设置观察点?