GDB/MI将stdin和stdout重定向到文件

问题描述:

我正在使用GDB Machine界面来调试从stdin读取并写入到sdtout的二进制文件。我想重定向stdin和stdout文件。与普通的GDB我可以使用运行命令是这样的:GDB/MI将stdin和stdout重定向到文件

run <input.txt> output.txt 

有没有什么办法,也许使用GDB/MI命令类似-exec运行到这一点?

这里是类似的问题GDB/MI detecting target waiting for input但它似乎如此复杂,相比普通的gdb解决方案。

我还没有发现任何东西在文档: ftp://ftp.gnu.org/old-gnu/Manuals/gdb/html_chapter/gdb_22.html#SEC216

我找到了解决方案。可以将MI GDB命令与GDB命令一起使用。所以,如果我需要向前stdin和stdout到文件,我可以做这样的:

  1. -file-exec-and-symbols <filename> // ReadFile的在主要功能调试
  2. -break-insert main //设置断点(或任何esle)
  3. run <input.txt> output.txt //向前stdin和stdout到文件
  4. -exec-run //开始调试

在这之后,你可以运行相同的步骤或-exec步或其他任何类似ÿ命令你通常会这样做。

您应该能够使用MI命令-inferior-tty-set 与mkfifo实用一起。