如何传递参数并将stdin从文件重定向到程序在gdb中运行?
我通常运行一个程序为:
./a.out arg1 arg2 <file
我想用gdb调试它。
我知道set args
功能,但只能从gdb提示符下工作。
将参数从gdb中传递给run
命令。
$ gdb ./a.out
(gdb) r < t
Starting program: /dir/a.out < t
你可以这样做:
gdb --args path/to/executable -every -arg you can=think < of
魔术比特是--args
。
只需在gdb命令控制台中键入run
以开始调试。
如果你想在gdb
run
裸指令来执行带有重定向和参数的程序,你可以使用set args
:
% gdb ./a.out
(gdb) set args arg1 arg2 <file
(gdb) run
我无法用--args
参数实现相同的行为, gdb
强烈转义重定向,即
% gdb --args echo 1 2 "<file"
(gdb) show args
Argument list to give program being debugged when it is started is "1 2 <file".
(gdb) run
...
1 2 <file
...
这实际上是重定向gdb本身的输入,而不是我们真正想要的东西
% gdb --args echo 1 2 <file
zsh: no such file or directory: file
链接地址: http://www.djcxy.com/p/86031.html
上一篇: How to pass arguments and redirect stdin from a file to program run in gdb?