gdb 不接受 Emacs 中的 stdin 重定向
我正在尝试在 emacs 中使用 gdb 模式调试程序。 它是用 g++ 编译的,我使用的是 cygwin。 我的程序接受一个命令行参数,并且还接受来自标准输入的输入,我从文件重定向该输入,如下所示:
program.exe inputFile.dat <otherInput.dat
问题是,gdb 将字符串
"<otherInput.dat"
作为命令行参数发送,而不是重定向标准输入。 如何强制 gdb 重定向 stdin?
编辑:
在 gdb 中,我使用命令:
run inputFile.dat <otherInput.dat
当我在 emacs 之外使用 gdb 时,它也不起作用。
编辑#2:
dfa指出了一个类似的问题:如何加载读取 stdin 并在 gdb 中获取参数的程序?
不幸的是,该问题的公认答案对我不起作用...这可能是与 cygwin 相关的错误吗?
I'm trying to debug a program using gdb mode in emacs. It was compiled with g++, and I'm using cygwin. My program takes one command line argument, and also takes input from stdin, which I redirect from a file, like this:
program.exe inputFile.dat <otherInput.dat
The problem is, gdb is sending the string
"<otherInput.dat"
as a command line argument instead of redirecting stdin. How do I force gdb to redirect stdin?
EDIT:
Within gdb, I'm using the command:
run inputFile.dat <otherInput.dat
It doesn't work when I use gdb outside of emacs, either.
EDIT #2:
dfa pointed out a similar question: How to load program reading stdin and taking parameters in gdb?
Unfortunately, the accepted answer for that question isn't working for me... Could it be a cygwin-related bug?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
看来你必须使用
run
命令:http://sourceware.org/gdb/current/onlinedocs/gdb_5 .html#SEC24
It seems that you have to use the
run
command:http://sourceware.org/gdb/current/onlinedocs/gdb_5.html#SEC24
如果您使用的是 bash,则可以通过执行 PROGRAM ARGS
PROGRAM ARGS
立即将 gdb 连接到进程。 文件与 作业 -x gdb 程序 %1
。 根据您使用的 shell,您可能会发现自己必须使用更具创意的方法(可能涉及将ps -C
的输出重定向到 gdb 的命令行)。If you are using bash, you can attach gdb to the process immediately by doing
PROGRAM ARGS < FILE & jobs -x gdb PROGRAM %1
. Depending on the shell you use, you may find yourself having to use more creative methods (probably involving output fromps -C
being redirected into gdb's command line).