How to confirm action (answer “Y”) in gdb script?

2019-04-03 13:20发布

问题:

I use gdb to debug my cpp code. I set breakpoints in this way:

(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.

To simplify setting breakpoints, I wrote a simple gdb script(named breakpoints.gdb), it simply contains only one line:

break ParseDriver.cc:60

I source this script in gdb terminal, but it failed.

(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]

It seems that we need to answer Y in script in order to set breakpoint.

So, how can I answer Y in gdb script ? Thank you in advance.

回答1:

(gdb) set breakpoint pending on

This will make gdb skip asking for confirmation, quote from the docs:

This indicates that an unrecognized breakpoint location should automatically result in a pending breakpoint being created.