如何在Codeblocks中进行调试?

6
我刚完成编程,但遇到了一些逻辑错误。我想要调试程序。
我使用Codeblocks,那么怎么样才能在程序执行时查看每个变量的状态和值,并逐行进行程序调试呢?
我基本上想要在Visual Studio中做的事情 - 在逐行浏览时显示每个变量的值和地址。
我还希望CodeBlocks显示当前正在执行哪一行。
有人知道我该怎么做吗?
感谢您的帮助。
2个回答

3

首先,在您的代码开头设置断点,否则代码块将不会逐行执行。

当您以调试模式运行程序时(检查菜单),您应该会得到一些工具栏,其中包含控件以推进行并查看变量。您可以通过在代码中悬停在变量上来使用变量的值。


我在第一行设置了断点,然后让它逐行执行。 但是到第20行左右,它会显示 __cxa_throw()(),然后从那时起就不再执行任何操作。 - user1017485
你知道__cxa_throw()是什么,以及它为什么会做这件事吗? - user1017485
这意味着你的程序抛出了异常。你有一个bug,而你刚刚找到了它 :) - jrok

1
请参考 xthexder 给出的答案,但如果你和我一样才刚开始进行调试的话,这里有一个额外的提示: 你需要在项目的构建选项中激活调试符号。否则,在一些稍微特殊的情况下,比如多个线程且有趣的部分不在第一个线程中,调试就无法正常工作(断点不会停止程序等)。例如,在尝试调试我的OpenGL/SDL2程序时就遇到了这种情况,这意味着即使你没有有意识地创建多个线程,也可能遇到这些情况。
当然,对于那些有经验的调试专家来说这是显而易见的。但对于像你和我这样的初学者来说...
如何激活调试符号,特别是在Code::Blocks中:
  • 选择"项目"菜单
  • 选择"构建选项..."菜单项
  • 选择"编译器设置"选项卡
  • 选择"调试"类别
  • 勾选"生成调试符号[-g]"复选框

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接