代码之家  ›  专栏  ›  技术社区  ›  Paul

gdb不接受Emacs中的stdin重定向

  •  2
  • Paul  · 技术社区  · 15 年前

    我试图在emacs中使用gdb模式调试一个程序。它是用g++编译的,我用的是cygwin。我的程序接受一个命令行参数,还接受来自stdin的输入,我从一个文件重定向它,如下所示:

    program.exe inputFile.dat <otherInput.dat
    

    "<otherInput.dat"
    

    作为命令行参数,而不是重定向stdin。如何强制gdb重定向stdin?

    编辑:

    run inputFile.dat <otherInput.dat
    

    当我在emacs之外使用gdb时,它也不起作用。

    编辑#2:

    dfa指出了一个类似的问题: How to load program reading stdin and taking parameters in gdb?

    不幸的是,这个问题的公认答案对我不起作用。。。可能是和cygwin有关的虫子吗?

    2 回复  |  直到 7 年前
        1
  •  3
  •   Bastien Léonard    15 年前

    看来你得用 run 命令:

    您可以使用带有run>的shell重定向来重定向程序的输入和/或输出;命令。例如,

    run > outfile
    

    http://sourceware.org/gdb/current/onlinedocs/gdb_5.html#SEC24

        2
  •  2
  •   coppro    15 年前

    PROGRAM ARGS < FILE & jobs -x gdb PROGRAM %1 . 根据您使用的shell,您可能会发现自己必须使用更具创造性的方法(可能涉及 ps -C