非常奇怪的行为:我的c++程序突然退出,但它在EclipseCDT的调试模式下完美地运行到最后

j1dl9f46  于 2023-04-05  发布在  Eclipse
关注(0)|答案(2)|浏览(138)

我在ubuntu 64位的Eclipse CDT中有自己的c++程序,它使用外部编码检测库。正如你可能猜到的,我使用gcc编译我的程序和GDB进行调试。现在我在编程生活中看到的最奇怪的行为:当我在Eclipse中使用“Debug As”调试我的程序时,它完美地工作到最后,但是当我选择“Run As”时,它会在程序中间突然终止,而不会在控制台中显示任何错误或异常消息!!!
有人知道这个奇怪的问题吗?

2mbi3lxu

2mbi3lxu1#

知道如何调试是非常重要的。如果你的调试器无法做到这一点,你可以尝试注解掉某些代码行,直到程序正常工作。如果这不起作用,你的程序可能患有heisenbug,我建议你在运行时在控制台中打印出变量来分析它们。你也应该检查你的代码。有时这可能是一个非常愚蠢的错误。

blmhpbnm

blmhpbnm2#

真正对我有帮助的是找到UB行为,正如@PaulMcKenzie所建议的那样。对于clang/gcc,你可以添加-fsanitize=undefined来看看是什么导致了这个问题。换句话说,编译并运行类似于下面的代码:clang -fsanitize=undefined -o myprogram myprogram.c -O3,然后修复打印到控制台中的问题。

相关问题