2012-07-06 104 views
15

我使用gdb来调试我的cpp代码。 我设置断点这样:如何在gdb脚本中确认操作(回答“Y”)?

(gdb) break ParseDriver.cc:60 
No source file named ParseDriver.cc. 
Make breakpoint pending on future shared library load? (y or [n]) y 
Breakpoint 1 (ParseDriver.cc:60) pending. 

为了简化设置断点,我写了一个简单的GDB脚本(名为breakpoints.gdb),它仅仅只包含一个行:

break ParseDriver.cc:60 

我这个来源脚本在gdb终端,但它失败了。

(gdb) source ~/breakpoints.gdb 
No source file named ParseDriver.cc. 
Make breakpoint pending on future shared library load? (y or [n]) [answered N; input not from terminal] 

看来我们需要在脚本中回答Y来设置断点。

那么,如何在GDB脚本中回答Y? 预先感谢您。

+0

[gdb:如何在带有--command标志的未来共享库上设置断点]的可能重复(http://stackoverflow.com/questions/100444/gdb-how-to-set-breakpoints-on-future共享库与指挥旗) – TooTone 2015-07-16 11:06:44

回答

32
(gdb) set breakpoint pending on 

这将使GDB跳过要求确认,报价从the docs

这表明,一个未识别断点位置应该 自动导致创建一个挂起的断点。

1

你可以使用set confirm off/on来包装你的命令,GDB不会要求确认。

+0

没有为我工作。 gdb无法创建断点,但它并没有要求确认。 – 2017-11-03 16:37:53