我经常运行一个程序:
./a.out arg1 arg2 <file
Run Code Online (Sandbox Code Playgroud)
我想用gdb调试它.
我知道set args功能,但只能从gdb提示符.
rub*_*nvb 410
你可以这样做:
gdb --args path/to/executable -every -arg you can=think < of
Run Code Online (Sandbox Code Playgroud)
神奇的是--args.
只需输入rungdb命令控制台即可开始调试.
mar*_*cog 135
将参数传递给rungdb中的命令.
$ gdb ./a.out
(gdb) r < t
Starting program: /dir/a.out < t
Run Code Online (Sandbox Code Playgroud)
如果您想使用裸run命令来gdb执行带有重定向和参数的程序,您可以使用set args:
% gdb ./a.out
(gdb) set args arg1 arg2 <file
(gdb) run
Run Code Online (Sandbox Code Playgroud)
我无法使用--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
...
Run Code Online (Sandbox Code Playgroud)
这实际上重定向了 gdb 本身的输入,而不是我们真正想要的
% gdb --args echo 1 2 <file
zsh: no such file or directory: file
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
155986 次 |
| 最近记录: |