如何从.gdbinit强制断点?

0xC*_*22L 8 gdb breakpoints

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

b foobar
Run Code Online (Sandbox Code Playgroud)

我明白了:

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

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

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

Mar*_*ick 14

这可以使用set breakpoint pending on.从设置断点文档:

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

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