c - Eclipse CDT 中的调试问题

标签 c eclipse debugging

我正在尝试调试 Eclipse CDT 附带的简单 Hello World 程序。运行程序通常工作正常,但是当它通过 Debug模式运行时,puts() 不会在控制台上打印任何内容。

我尝试直接使用 gdb 运行相同的程序,它工作正常,按预期打印 "!!!Hello World!!!"

为什么通过 Eclipse 在 Debug模式下运行时 puts() 不打印任何内容?

我在 Windows 上安装了 MinGW,运行 gcc 4.5.0、gdb 7.2 和 CDT 7.0.1

最佳答案

感谢Swiss指出了正确的方向。
在每个 printf,puts 语句后面添加 fflush(stdout) 不适合大项目调试时(当释放,最好在适当的时候使用fflush())。
然后,我们可以使用预处理器指令#ifdef && setbuf()
在 Eclipse 中,您的 C 项目 -> 属性 -> C/C++ Build -> 设置: 配置=“调试[事件]” -> 工具设置 -> GCC C 编译器 -> 符号 -> 添加“_DEBUG”,

然后在你的 main() 中,使用:

#ifdef _DEBUG
setbuf(stdout,NULL); // this disables buffering for stdout.
#endif

关于c - Eclipse CDT 中的调试问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3954994/

相关文章:

c - liburing/IORING_OP_PROVIDE_BUFFERS - 分配给读取操作的错误缓冲区

mysql - http ://java. sun.com/jsp/jSTL/core 无法在 web.xml 或随此应用程序部署的 jar 文件中解析

c# - 是否可以在我的应用程序中显示 VS 输出窗口内容?

c - 隐藏终端,C + GTK

c - 我想从文本文件中读取空格分隔的数字,然后使用结构将其存储到数组中

java - Eclipse PropertySheetPage - 它可以支持多行属性吗?

php - 任何有效的 php 调试器,PDT?

java - 减少条件跟踪/记录调用的开销

c++ - 强制 Visual Studio 进入 STL 类/函数

c - 在c中查找两个文本文件之间的差异