当任何未知断点在GDB中命中时,如何执行特定操作

时间:2013-08-15 15:31:30

标签: gdb tracing

我已阅读以下SO问题: Do specific action when certain breakpoint hits in gdb

在这里,我们使用'command'来决定当SPECIFIED Breakboint被击中时该怎么做。

我的问题是:

假设我在所有与给定模式匹配的函数上放置了断点:

gdb$rbreak func_

=> 100个断点(比如说)

当我执行此代码时,我想执行相同操作 - 点击其中的每个功能。

因此,我无法定义类似的内容:

command break_point_number 

//因为我不知道会有多少个断点

有人可以建议我:

当任何断点在GDB中命中时,如何进行特定的操作设置?

感谢。

1 个答案:

答案 0 :(得分:3)

使用足够新的gdb版本,您可以使用范围:

(gdb) rbreak whatever
... gdb creates breakpoints N, N+1, ..., M
(gdb) commands N-M
> stuff
> end

我忘了这个功能何时进入。

对于旧版本的gdb,我不确定它是否可以轻松完成。

可以很难完成:使用set logging将输出写入文件,然后使用“info break”,然后使用“shell”运行脚本以将文件编辑为gdb命令,然后使用“source”。这非常痛苦。