我有一个程序,我正在尝试使用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并开始运行我的代码后,我使用了 set variable *your_variable* = *your desired input* . 工作就像一个魅力 .
set variable *your_variable* = *your desired input*
我知道这已经晚了,但也许它会帮助别人 .
您也可以先运行程序,然后将GDB附加到它:
gdb --pid $(pgrep your_program)
这样,您就可以在单独的终端中以交互方式运行程序 .
3 回答
我昨天刚刚经历过这样的事情并在gdb中通过一堆“帮助”命令递归,因为我无法在互联网上找到我所需要的 .
在我启动gdb并开始运行我的代码后,我使用了
set variable *your_variable* = *your desired input*
. 工作就像一个魅力 .我知道这已经晚了,但也许它会帮助别人 .
您也可以先运行程序,然后将GDB附加到它:
这样,您就可以在单独的终端中以交互方式运行程序 .