我有一个程序,我正在尝试使用 gdb 对其进行调试。在程序内部,我有一些方法要求用户使用标准输入输入。当我在 gdb 中时,如何输入此输入?这样我就可以追踪我的方法是如何工作的?
问问题
33134 次
3 回答
30
$ 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)
于 2012-10-30T02:47:11.923 回答
8
您也可以先运行您的程序,然后将 GDB 附加到它:
gdb --pid $(pgrep your_program)
这样,您将能够在单独的终端中以交互方式运行您的程序。
于 2018-12-01T12:37:11.293 回答
4
我昨天刚刚经历了这样的事情,并在 gdb 中递归了一堆“帮助”命令,因为我在 Internet 上找不到我需要的确切内容。
我set variable *your_variable* = *your desired input*
在启动 gdb 并开始运行我的代码后使用。像魅力一样工作。
我知道这已经晚了,但也许它会帮助别人。
于 2015-05-30T13:43:37.450 回答