【问题标题】:GDB Windows output redirectionGDB Windows 输出重定向
【发布时间】:2014-04-05 03:26:04
【问题描述】:

我一直在尝试遵循this similar question 的第一个答案的选项 3 中给出的建议。我已成功使用提供的命令重定向输入,但无法重定向输出。这是我的命令:

# gdb debugee.exe
(gdb) b main
(gdb) run
(gdb) p dup2(open("output.txt", 256), 1) 
(gdb) c

注意到我使用 256 表示“如果不存在则创建”,使用 1 而不是 0 来重定向标准输出而不是标准输入。

文件已创建,程序输出似乎在某处,因为它没有出现在终端窗口中;但文件仍然是空的。

我做错了什么?还是输出有其他注意事项?

【问题讨论】:

    标签: windows gdb mingw


    【解决方案1】:

    你应该先试试:

    p open("output.txt", 256)
    

    并验证它返回的不是-1

    openO_CREAT 版本实际上需要 3 个参数。假设O_CREAT 在您的系统上实际上是 256,而 O_WRONLY 是 1,那么正确的调用应该类似于

    p open("output.txt", 257, 0744)
    

    我做错了什么?

    除了为新创建文件的模式提供垃圾之外,您正在以只读模式创建它。随后的写入都因此而失败,并且无处

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-22
      • 1970-01-01
      • 1970-01-01
      • 2011-02-26
      • 2017-08-08
      • 2017-06-14
      • 2012-07-11
      相关资源
      最近更新 更多