gpt4 book ai didi

使用 cygwin 进行 gdb 输入重定向

转载 作者:行者123 更新时间:2023-12-04 00:16:31 27 4
gpt4 key购买 nike

似乎 gdb 中的输入重定向在 Cygwin 中不起作用,例如

(gdb) run < input.txt

还有其他方法可以在 Cygwin 的 gdb 中重定向输入吗?

最佳答案

不幸的是,在 cygwin 中运行 gdb 时这是不可能的。 bug引用已经存在很长时间了,但显然它很难修复 - 并且 gdb 开发人员可能更喜欢将时间花在与更常见环境(例如 Linux)相关的功能/问题上。

有多种可能的解决方法;我更喜欢第一个,因为它是最干净且有用的,而不是在 cygwin 上调试/运行:

  • 添加命令行参数,例如-f whateverwhatever是要读取的文件名。如果参数不存在或设置为 - ,从标准输入读取。 -f - option 当然是可选的,但对于接受文件名的参数,它是处理 - 的通用标准(只要有意义)作为“使用标准输入/输出”。
  • 使用提到的 gdb hack here将 stdin 重新映射到应用程序中手动打开的文件:
    > gdb yourexecutable
    (gdb) break main
    (gdb) run
    (gdb) call dup2(open("input.txt", 0), 0)
    (gdb) continue

    这在 main 上设置了一个断点函数,然后执行进入 main 后立即中断的程序.然后 dup2 用于用输入文件的文件描述符替换 stdin fd ( 0 )。
  • 关于使用 cygwin 进行 gdb 输入重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9031554/

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