我正在尝试在 64 位 Windows 上使用 eclipse-Juno-CDT 和 cygwin-gcc(cygwin 版本=1.7.16,gcc 版本=3.4.4,gdb 版本=7.5.50)调试以下 C 代码。该代码在正常模式下工作正常。最初调试器没有运行,因为找不到源文件。然后我四处搜索并添加了路径映射信息(从/cygdrive/c到C:\)。现在它正在运行,但存在以下问题:
我在“hello c 1”行之前放了一个断点,然后单步执行。但是控制台上没有打印任何内容。
在最后一行(“exit”)上单步后,我收到错误:“No source available for _cygwin_exit_return() at ...”
// stdio.h and stdlib.h are included, but when I put a #include the code // they dont show up, so I deleted those lines in this code fragment. int main(void) { int a=10; int b=5; // breakpoint on this line, single step after this printf("hello c 1\n"); // these outputs are not printed in console // fflush(stdout); printf("A=%d, B=%d\n", a, b); // but debugger shows the correct values in data window // fflush(stdout); return EXIT_SUCCESS; // error on this line }
稍后添加:经过更多调试后,我发现即使在退出错误之后,如果我执行“继续”,那么在程序终止后我会在控制台上看到这些行。所以我添加了额外的“fflush(stdout)”行,现在我可以在打印输出时看到它们。
但是如何解决退出错误问题?此外,编辑文件以添加 fflush 以查看调试输出是一种痛苦——有没有办法避免这种情况?有人可以帮助我解决这个非常基本的问题,或者将我指向一个给出解决方案的地方吗?提前致谢。