c++ - 如何调试 C++ 运行时错误

标签 c++ mingw runtime-error codeblocks

我使用 MinGW 作为编译器,使用 CodeBlocks 作为 IDE。当出现运行时错误时,程序会直接停止工作而不会出现任何错误消息。是否可以获取常规错误消息,例如错误类型和发生位置?

最佳答案

我知道这不是真正的“答案”,但我还是新手,所以我还不能对这些问题发表评论。无论如何,就像 Mats 所说的那样,试试 GDB。这里是下载页面http://www.gnu.org/software/gdb/

有很多使用调试器的教程。这个还算不错。 http://www.cs.cmu.edu/~gilpin/tutorial/

如果您从未使用过调试器,它基本上会逐行运行您的代码。您可以控制要进行多远以及希望代码在何处停止以检查错误。调试器还跟踪其他重要信息,如变量值、变量地址、循环计数等。

如果您不想使用调试器,您始终可以在您可能怀疑程序崩溃的地方使用打印语句。例如,如果你有一个函数 foo(),你可以在该函数的第一行放置一个 print 语句,比如“in function foo”。但是,如果您有大量代码,这种方法可能会变得非常乏味。您还必须记得在完成后删除打印语句。

关于c++ - 如何调试 C++ 运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16989137/

相关文章:

c# - GUID 在 C++ 中的使用 :

c++ - 即使安装了CppUnit,也无法通过 “TestFactoryRegistry.h: No such file or directory”在MinGW上构建zxing

AMD 64 位平台上的 Java native 接口(interface)错误 : Can't load IA 32-bit . dll

c++ - 对齐、总大小和 SSE

java - Drools 运行时异常(java.lang.ClassCastException : org. drools.io.impl.ClassPathResource 无法转换为 org.drools.io.InternalResource)

typescript 错误: jwt.解码不是函数

c++ - 我应该如何设计一组相关的类,其中只有一部分支持某种操作?

c++ - 我必须使用哪种 C 数据类型?

java - 为什么当通过 JNI 在 Java 代码中运行 EGL 函数时,我对 EGL 函数的调用会发生变化?

VBA : Delete rows using variables