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++ - 将图像转换为占用网格

android - “在 Chrome 中调试”不适用于 android 的 native react

delphi - DLL 断点没有被 "remote debug symbols"选项命中,为什么以及这些有任何安全风险吗?

c - GDB 没有那个文件或目录

c++ - 我在这里如何滥用 C++ promises 和 futures?

c++ - 为 Mac OS X 修改旧的 Windows 程序

c++ - 捕获注册表请求 C++

javascript - GET 文档在第一次访问时被取消(Chrome)

c - 帮助 gdb 跟踪(或类似的)

gdb - 核心转储注释部分