如何从 .gdbinit 强制断点?

Posted

技术标签:

【中文标题】如何从 .gdbinit 强制断点?【英文标题】:How do I force a breakpoint from .gdbinit? 【发布时间】:2015-02-27 16:39:15 【问题描述】:

当我在.gdbinit 中设置断点时:

b foobar

我明白了:

Function "foobar" not defined.
Make breakpoint pending on future shared library load? (y or [n]) [answered N; input not from terminal]

现在第一行是可以理解的,因为函数驻留在共享库中。但是,这默认为 no

在这种非交互场景下如何强制设置断点?

【问题讨论】:

gdb: how to set breakpoints on future shared libraries with a --command flag 的可能重复项 【参考方案1】:

这可以使用set breakpoint pending on 来完成。来自Setting Breakpoints 文档:

gdb 提供了一些额外的命令来控制break 命令无法将断点地址规范解析为地址时发生的情况:

set breakpoint pending auto - 这是默认行为。当 gdb 找不到断点位置时,它会询问您是否应该创建挂起的断点。 set breakpoint pending on - 这表明一个无法识别的断点位置应该会自动导致一个挂起的断点被创建。 set breakpoint pending off - 这表示不创建挂起的断点。任何无法识别的断点位置都会导致错误。

【讨论】:

以上是关于如何从 .gdbinit 强制断点?的主要内容,如果未能解决你的问题,请参考以下文章

.gdbinit文件配置

从 gdbinit 脚本单步执行时如何设置跳过不感兴趣的函数?

如何在gdbinit函数中有条件地执行命令

跟踪所有变量以执行gdb中的函数

gdb的断点列表

如何在交互式调试期间突出显示和着色 gdb 输出?