c++ - GDB 控制台无法显示 printf 的结果

标签 c++ debugging gdb printf

我在 RedHat 中使用 gdb 来调试 C++ 代码。为了更好地调试我的代码,我添加了 printf("XXX")

但是,printf("XXX")执行后,gdb控制台并没有显示XXX。

我的代码的其他部分工作正常。

最佳答案

很可能您的输出是行缓冲的,并且因为您没有以换行符结束打印,所以输出没有被刷新。三个简单的修复:

  1. std::printf("XXX"); std::fflush(标准输出);
  2. std::printf("XXX\n");
  3. std::puts("XXX");

此外,如果您将 C 风格的 FILE* i/o 与 C++ 风格的流混合使用,请小心。

关于c++ - GDB 控制台无法显示 printf 的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39225293/

相关文章:

c++ - 插入排序不排序第一个元素?

c++ - 尝试读取 4 字节无符号整数的二进制文件并转换为伏特

python - "sys.settrace"是否在 Python 3.5 中正常工作但在 Python 3.6 中不正常?

c - 在C文件中设置GDB断点

c - 如何使用 gdb 将反汇编语法更改为 intel?

c++ - gdb 7.0 警告 : Wrong size fpregset in core file

c++ - C++中的前缀递归表示法

c++ - 在 Linux 上链接 C++ 库

未被调用的 C++ 函数必须存在或代码爆炸

java - Oracle 非键字段上的唯一约束没有错误?