gpt4 book ai didi

gdb - gdb(MinGW)中的输入重定向

转载 作者:行者123 更新时间:2023-12-03 12:17:15 24 4
gpt4 key购买 nike

我正在尝试让gdb运行具有输入重定向到stdin的程序。例如,如果没有gdb,我将运行以下程序:

prog < input.txt

现在在gdb中,执行此操作的常用方法是 run < input.txt。但是,它对我不起作用,并且在执行此操作时,没有任何内容被重定向到stdin。

我将Windows与MinGW结合使用。可能是什么问题呢?

最佳答案

早在90年代后期,中断的命令行重定向就是known and assumed limitation。我的怀疑是,它仍然保持这种方式,因为mingw32gdb端口仍然愉快地逐字传递所有run参数(包括重定向)给被调试者。

几种可能的解决方法:

  • 如果可以选择更改命令行界面,则实现bbadour的建议
  • 否则,如果您可以轻松地在要调试的点之前挂起进程,请从shell调用被调试对象(带有重定向),并在 shell 已经运行
  • 时附加到该对象
  • 否则,如果您有被调试者的符号(gcc -g)或您知道main()的地址(gcc -Wl,-Map,mapfile)并可以在此处设置断点,请按照以下方式进行操作(已通过mingw gdb 6.8.0测试):
    # gdb debugee.exe
    (gdb) b main
    (gdb) run non-redirect-arguments-if-any
    (gdb) p dup2(open("/tmp/input.txt", 0), 0)
    (gdb) c
  • 关于gdb - gdb(MinGW)中的输入重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3544325/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com