【问题标题】:Getting the breakpoint number from gdb从 gdb 获取断点号
【发布时间】:2021-02-04 19:25:10
【问题描述】:

我正在编写 gdb 命令脚本来简化调试。我遇到的问题之一 是我设置了一个断点,然后我想禁用它,只有在命中另一个断点后才启用它。

我想做的是这个

$my_break_number = break SomeFile.cpp:231
disable $my_break_number

但不幸的是 gdb 不能以这种方式工作。我已阅读手册,但找不到有关如何执行此操作的任何信息。希望有一些我错过的信息。

【问题讨论】:

    标签: gdb


    【解决方案1】:

    gdb 将自动设置一个方便变量 $bpnum 与最后设置的断点号。

    您可以在设置断点后使用它来禁用它(我没有测试过断点不明确并创建多个断点时,我认为它会起作用并禁用所有创建的断点位置。)

    见:http://sourceware.org/gdb/current/onlinedocs/gdb/Set-Breaks.html#Set-Breaks

    如果您需要使用命令中的断点编号,那可能不是您想要的,但它适用于指定的问题。

    【讨论】:

    • 我认为这正是我想要的。我已经多次阅读该页面,但每次都错过了 $bpnum。如果可行,我会检查并接受答案。
    【解决方案2】:

    听起来您可能想使用Python GDB scripting,它为您提供了比“常规”命令脚本更好的编程access to breakpoints

    【讨论】:

    • 我要去看看 python 脚本,它看起来非常令人兴奋,但现在我被一个没有 python 支持的 gdb 卡住了。
    【解决方案3】:

    另外info breakpoints 提供有用的信息,例如:

    断点个数,断点被命中多少次,内存中的地址,在什么函数中,断点的文件和行号

    【讨论】:

      猜你喜欢
      • 2013-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-03
      相关资源
      最近更新 更多