GDB/MI 将标准输入和标准输出重定向到文件



我正在使用GDB机器接口来调试从stdin读取并写入sdtout的二进制文件。我想将标准输入和标准输出重定向到文件。使用普通的 GDB,我可以使用这样的运行命令:

run < input.txt > output.txt

有没有办法像这样使用 GDB/MI 命令 -exec-run ?

这是类似的问题 GDB/MI 检测目标等待输入,但与普通的 gdb 解决方案相比,它似乎很复杂。

我在文档中也没有找到任何东西:ftp://ftp.gnu.org/old-gnu/Manuals/gdb/html_chapter/gdb_22.html#SEC216

你应该能够使用 mi 命令 -inferior-tty-set以及 MKFIFO 实用程序。

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

  1. -file-exec-and-symbols <filename>//readfile 进行调试
  2. -break-insert main//在主函数(或其他任何地方(设置断点
  3. run < input.txt > output.txt//将标准输入和标准输出转发到文件
  4. -exec-run//开始调试

在此之后,您可以像往常一样运行诸如step或-exec-step之类的命令。

最新更新