【问题标题】:XCode/GDB stops on my auto-continue breakpoints when debugging on Device在设备上调试时,XCode/GDB 在我的自动继续断点处停止
【发布时间】:2011-06-15 09:28:53
【问题描述】:

我刚刚发现(感谢另一个非常有帮助的post)我可以使用 GDB 命令创建断点,将信息记录到 GDB 控制台,无论是在设备上还是模拟器上进行调试。这就像 NSLog,但更好的是您不必等待控制台赶上,您没有烦人的时间戳,并且您可以在运行时通过 XCode 断点视图打开/关闭它们)。

非常好,我花时间研究如何最好地将消息和变量一起记录。 (使用 GDB 命令po [NSString stringWithFormat: @"Your message: %d %@",variable,[[object expression] description]])以获得最大的多功能性。

模拟器中的一切都运行得非常好。当我终于开始进行设备调试时,我得到了很好的消息,但是 GDB 在每个断点上都停止了,尽管我通过选中断点视图中的框将它们配置为自动继续。

我尝试在每个断点上添加一个“继续”命令,它起作用了,但 GDB 也开始喷出有关每个断点命中的信息,并在每一行之后告诉我“继续”。

我的问题:

  1. 您会遇到这种情况吗?
  2. 我可以更改一些内容,以便自动继续也可以在设备上运行
  3. 我可以告诉 GDB 不那么冗长,只给我打印的输出吗?

请帮忙!!

大卫

【问题讨论】:

  • 我遇到了同样的问题。如果您找到或找到了解决方案,请告诉我。

标签: iphone debugging gdb device breakpoints


【解决方案1】:

大卫,

您可能想熟悉一些有用的控制台命令。

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 

亚伦

【讨论】:

  • 在给定断点记录变量“var”并执行 continue 命令的 gdb 语法是什么?
  • p var(换行)续
  • 对不起,我已经知道如何记录变量了。我实际上是在寻找 gdb 自动继续语法。
  • 你会输入:command [breakpoint number] 后面跟着我之前提供的命令。
【解决方案2】:

另一个非常有用的选项是watchpoint - 仅在给定表达式更改时才中断。

【讨论】:

  • 观察点和条件在当前 XCode 中极其不可靠。我也遇到过自动继续问题。
【解决方案3】:

我遇到了同样的行为。事实证明,XCode 在预期的行复制了断点。也许有一个错误,左键单击偶尔会添加隐藏断点而不是禁用?

解决办法是这样的:

  1. 选择左侧导航器框架的“断点导航器”选项卡
  2. 手动或通过在导航器底部的搜索框中输入类名来查找重复的断点。 (请记住,列表的多个项目部分可能都包含同一类的断点)
  3. 右键单击一个并选择编辑以确定它是否是继续。
  4. 右键单击不需要的断点并删除

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-30
    • 2012-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-26
    • 2023-03-22
    • 2013-07-20
    相关资源
    最近更新 更多