如何从.gdbinit强制断点?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从.gdbinit强制断点?相关的知识,希望对你有一定的参考价值。

当我在.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。

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

答案

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

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

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

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

.gdbinit文件配置

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

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

gdb的断点列表

如何从片段内的列表视图打开链接网址?

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