我正在尝试在emacs中使用gdb模式调试程序 . 它是用g编译的,我正在使用cygwin . 我的程序接受一个命令行参数,并从stdin获取输入,我从文件重定向,如下所示:
program.exe inputFile.dat <otherInput.dat
问题是,gdb正在发送字符串
"<otherInput.dat"
作为命令行参数而不是重定向stdin . 如何强制gdb重定向stdin?
编辑:
在gdb中,我正在使用命令:
run inputFile.dat <otherInput.dat
当我在emacs之外使用gdb时它也不起作用 .
编辑#2:
dfa指出了一个类似的问题:How to load program reading stdin and taking parameters in gdb?
不幸的是,这个问题的公认答案对我不起作用......这可能是与cygwin相关的错误吗?
2 回答
看来你必须使用
run
命令:http://sourceware.org/gdb/current/onlinedocs/gdb_5.html#SEC24
如果您正在使用bash,则可以通过执行
PROGRAM ARGS < FILE & jobs -x gdb PROGRAM %1
立即将gdb附加到进程 . 根据您使用的shell,您可能会发现自己必须使用更多创造性方法(可能涉及将ps -C
的输出重定向到gdb的命令行) .