如何调试一个程序,该程序将用户输入使用GDB从Stdin中输入



我有一个程序,我正在尝试使用GDB进行调试。在程序中,我有需要用户使用stdin输入输入的方法。当我进入GDB时,如何输入此输入?这样我就可以追踪我的方法的工作原理?

$ cat >foo <<EOF
something
EOF
$ gdb -quiet /bin/cat
Reading symbols from /bin/cat...(no debugging symbols found)...done.
Missing separate debuginfos, use: debuginfo-install coreutils-8.12-7.fc16.x86_64
(gdb) run <foo
Starting program: /bin/cat <foo
something
[Inferior 1 (process 22436) exited normally]
(gdb) 

您也可以先运行程序,然后将GDB附加到它:

gdb --pid $(pgrep your_program)

这样,您将能够在单独的终端中交互运行程序。

我昨天刚刚经历了这样的事情,并通过GDB中的一堆" help"命令递归,因为我找不到互联网上需要的东西。

我开始使用GDB并开始运行代码后使用了set variable *your_variable* = *your desired input*。像魅力一样工作。

我知道这已经很晚了,但也许会帮助别人。

最新更新