如何在使用mingw-gdb进行调试时为程序提供输入

如何在使用mingw-gdb进行调试时为程序提供输入,gdb,mingw,Gdb,Mingw,我正在尝试使用mingwgdb调试一个包含scanf语句的C程序。 我按照post编译程序并使用以下命令启动调试器 gcc -g -o sample sample.c gdb sample.exe 并使用break main在main处创建断点。由于我的程序需要一个整数和字符串作为通过scanf的输入,所以我按照post创建了一个名为input的文件,其中包含内容 1 "InputString" 并使用调试器运行程序 run < input run

我正在尝试使用mingwgdb调试一个包含scanf语句的C程序。 我按照post编译程序并使用以下命令启动调试器

gcc -g -o sample sample.c 
gdb sample.exe            
并使用
break main
在main处创建断点。由于我的程序需要一个整数和字符串作为通过scanf的输入,所以我按照post创建了一个名为input的文件,其中包含内容

1
"InputString"
并使用调试器运行程序

run < input
run
gdb似乎没有启动程序,并给出以下消息

Starting program: F:\spoj\sample.exe < input
Don't know how to run.  Try "help target".
启动程序:F:\spoj\sample.exe

请帮助我了解哪里出了问题。

我使用以下格式为在gdb下运行的程序提供命令行参数:

<shell> gdb a.out
gdb> set args "what ever you would provide on the command line"
gdb> run
gdb a.out
gdb>set args“您将在命令行上提供什么”
gdb>运行

我必须在运行时使用scanf获取输入,因此我正在寻找一个gdb选项,该选项会提示输入。据我所知,您的程序接受命令行参数。如果您知道要通过scanf输入的输入,那么您可以通过set args提供它们?如果您仅在运行时知道此数据,那么一个选项是从程序本身读取输入,即您能否在sample.exe中编写一个循环以从具有特定名称的文件读取输入?您提供给scanf()的输入可以重定向到一个文件,以便sample.exe可以读取它。我已经尽力了。谢谢。我没有想到这个选择。我试试看。现在投票表决的是答案。”I’如果我能有更好的选择,我会等。