如何加载程序读取标准input和参数在gdb中?
我有一个程序,从标准inputinput,也从命令行采取一些参数。 它看起来像这样:
cat input.txt > myprogram -path "/home/user/work"
我尝试用gdb在emacs里面debugging代码,通过Mx gdb,我尝试用下面的命令加载程序:
gdb cat input.txt > myprogram -path "/home/user/work"
但是,gdb不喜欢它。
问题从这里 cri手</s>脚。 不幸的是,我不明白的解决scheme,不知道除了用-g
选项编译和运行命令MX GDB之外该怎么办。
如果你是用shell做的话,你可以这样做:
% gdb myprogram gdb> run params ... < input.txt
这似乎也在emacs中工作。
有几种方法可以做到这一点:
$ 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
。
为了完整起见,在开始一个debugging会话时还有–args选项。 即)
gdb gdbarg1 gdbarg2 --args yourprog arg1 arg2 -x arg3
如果您不需要从一开始就进行debugging,则还可以使用以下命令附加到正在运行的进程:
$ gdb myprogram xxx
其中xxx是进程ID。 那么你不需要告诉gdb开始的参数。