使用cygwin的gdb输入重定向
gdb中的输入重定向在Cygwin中似乎不起作用使用cygwin的gdb输入重定向,gdb,cygwin,Gdb,Cygwin,gdb中的输入重定向在Cygwin中似乎不起作用 (gdb) run < input.txt (gdb)运行
(gdb) run < input.txt
(gdb)运行
是否有其他方法重定向Cygwin的gdb中的输入???不幸的是,在Cygwin中运行gdb时,这是不可能的。这个问题已经存在了很长一段时间,但显然很难解决,而且gdb开发人员可能更愿意花时间在与更常见的环境(如Linux)相关的特性/问题上 有各种可能的解决办法;我更喜欢第一个,因为它是最干净、最有用的,而不是在cygwin上调试/运行:
- 添加命令行参数,例如
,其中-f which
是要读取的文件名。如果参数不存在或设置为which
,请从标准输入读取。当然,-
选项是可选的,但对于接受文件名的参数来说,将-f-
处理为“使用标准输入/输出”是一个通用标准(只要有意义)-
- 使用上述gdb hack将stdin重新映射到应用程序内手动打开的文件:
这将在> gdb yourexecutable (gdb) break main (gdb) run (gdb) call dup2(open("input.txt", 0), 0) (gdb) continue
函数上设置一个断点,然后执行程序,该程序将在进入main
后立即中断。然后用于用输入文件的文件描述符替换stdin fd(main
)0