gdbpipe道redirect错误:(gdb)在fd 0上检测到挂起

帮助,我该如何解决这个问题? 我无法将命令从stdinredirect到gdb

我得到这个错误:

charmae@charmae-pc:~/workspace/AVT$ echo "list" | gdb a.out GNU gdb (Ubuntu/Linaro 7.3-0ubuntu2) 7.3-2011.08 Copyright (C) 2011 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i686-linux-gnu". For bug reporting instructions, please see: <http://bugs.launchpad.net/gdb-linaro/>... Reading symbols from /home/charmae/workspace/AVT/a.out...done. (gdb) Hangup detected on fd 0 error detected on stdin 

另一种很好的方法是使用here-document将输入重定向到gdb:

 gdb -quiet -nx << EndOfInput thread apply all bt quit EndOfInput 

这使得可以编写一个脚本来控制gdb而不必使用临时文件。 它似乎完全避免了“挂断检测”消息。

如果你的目标是在gdb启动时执行命令“list”,最简单的方法就是使用.gdbinit启动文件。 例如:

 $ echo list> .gdbinig
 $ gdb a.out

如果您希望在运行.gdbinit中列出的命令之后退出gdb,请执行以下操作:

 $ echo quit >> .gdbinit