Answers:
如果您是通过shell进行的,则需要这样:
% gdb myprogram
gdb> run params ... < input.txt
这似乎也可以在emacs中工作。
<
和input.txt
作为argv
程序参数:(我将继续使用我的gdb 8.2.1挖掘这些答案:stackoverflow.com/questions/3544325/…–
有几种方法可以做到这一点:
$ gdb myprogram
(gdb) r -path /home/user/work < input.txt
要么
$ gdb myprogram
(gdb) set args -path /home/user/work < input.txt
(gdb) r
要么
$ gdb -ex 'set args -path /home/user/work < input.txt' myprogram
(gdb) r
其中gdb run
命令(r
)默认使用先前使用设置的参数set args
。
gdb -ex 'r -path /home/user/work < input.txt' myprogram
在第三个变体中?
gdb -ex 'b main' -ex 'r -path /home/user/work < input.txt' myprogram
。
而且,如果您不需要一开始就进行调试,则还可以使用以下命令将其附加到已经运行的进程中:
$ gdb myprogram xxx
其中xxx是进程ID。然后,您无需告诉gdb起始参数。