我刚刚发现(感谢另一个非常有帮助的post)我可以使用GDB命令创建断点,将信息记录到GDB控制台,无论是在设备还是模拟器上进行调试。这就像NSLog,但更好的是你不必等待控制台赶上,你没有恼人的时间戳,你可以通过XCode断点视图在运行时打开/关闭它们。
非常好,我花了很多时间搞清楚如何最好地将消息和变量记录在一起。 (使用GDB命令po [NSString stringWithFormat: @"Your message: %d %@",variable,[[object expression] description]]
)以获得最大的多功能性。
在模拟器中一切都运行得非常好。当我最终进入设备调试时,我收到的信息很好,但是GDB在每个断点处都停止了,尽管我通过选中断点视图中的框将它们配置为自动继续。
我尝试在每个断点处添加一个“continue”命令,但它起作用了,但是GDB也开始喷出每个断点的信息,并在每一行之后告诉我“继续”。
我的问题:
请帮助!!
大卫
答案 0 :(得分:1)
我遇到了同样的行为。事实证明,XCode在预期的行上复制了断点。也许有一个错误,左键点击偶尔会添加一个隐藏的断点,而不是禁用?
解决方案是:
答案 1 :(得分:0)
大卫,
您可能希望熟悉一些有用的控制台命令。
info b (lists all breakpoints)
ena (enables all breakpoints)
dis (disables all breakpoints)
ena X (enable breakpoint number X)
dis X (disable breakpoint number X)
GDB还支持条件断点:
cond X [condition]
并且,命令在命中断点时自动执行:
command X
亚伦
答案 2 :(得分:0)
另一个非常有用的选项是watchpoint - 仅在给定表达式更改时中断。