如何在Code::Blocks中调试独立文件?

23

我正在使用Code::Blocks进行编程。我设置了一些断点,但是当我运行程序时,Code::Blocks似乎忽略了它们。

所谓的“启动程序”是指简单地点击build_and_run(构建和运行)。

我在调试(Debug)下检查,发现F8不可用(开始/继续):

Debug_Menu

程序编译和运行都很好,只是它忽略了断点。有人知道如何解决这个问题吗?

注意: 我查看了这里,我认为所提出的答案对我不相关,因为在编译器设置中,我只有"C:\MinGW"在编译器安装目录下。

编辑:

我正在使用Windows 8 (64位),Code::Blocks 12.11。


在win7上,提示说要设置调试器而没有设置,在安装目录中搜索后,我不得不将调试器设置为这个(gdb32)codeblocks\mingw\gdb32\bin\gdb32.exe。 - mosh
7个回答

34

我猜您正在调试一个独立的文件(不属于项目的文件)。Code::Blocks不支持调试这样的文件。尝试将要编译的文件作为空项目的一部分包含进去。


对我管用。我试图在Code::Blocks中调试一个.cpp源代码,而不创建一个项目。我创建了一个新项目,现在可以进行调试了。 - sy456
很好。C::B非常有用,因为它能够“无需询问”地编译和运行单个文件,我从来没有费心将它们添加到项目中。现在我知道为什么调试器变灰了。 - d.Candela

21
在Code::Blocks中,进入设置菜单,然后点击编译器。确保在侧边栏中选择了全局编译器设置,然后切换到工具链可执行文件选项卡。你的调试器条目应该显示类似于GDB/CDB debugger: default的内容。如果是这样,请在此对话框中点击“确定”。
返回到设置菜单并选择调试器。在左侧的GDB/CDB debugger树中,选择默认。确保可执行路径文本框设置为你的gdb.exe路径 - 在你的情况下,正确的路径可能是像C:\MinGW\bin\gdb.exe这样的东西。确保调试器类型设置为GDB。然后点击确定
现在你的调试器(GDB)应该已经设置好了。如果你愿意可以重新启动Code::Blocks(我之前遇到过它闪退、丢失上次更改的设置等问题),然后进入调试菜单,开始/继续应该已经启用了。

1
好的,你详细信息中唯一没有设置的是调试器设置下的“可执行路径”。所以我按照你说的将其设置为C:\MinGW\bin\gdb.exe,但它仍然无法工作。(我检查了一下在c:\MinGW\bin中是否有gdb.exe文件,确实存在)。 - Alaa M.
@Alaa,现在是否已经有“开始/继续”菜单选项了? - cf-
没有。似乎没有任何变化。 - Alaa M.
当我开始编码时,我只是打开了一个空的“新文件”,而不是“项目”。我将文件保存在C:\MinGW\bin(所以那里没有空格)。关于使用/不使用符号进行构建,您是否指的是*设置->编译器->生成调试符号[-g]*?如果是这样,那么我已经禁用了它。但是我刚刚尝试启用它,但没有任何变化。 - Alaa M.
3
我建议创建一个项目,看看是否有帮助。我没有尝试过只使用普通文件进行工作。我的意思是 Project -> Build Options -> Produce debugging symbols,但 Settings -> Compiler -> Produce debugging symbols 也可以(这是该设置的全局形式)。您希望勾选它,因为如果没有调试符号,将无法调试程序。 - cf-
显示剩余2条评论

3

0

处理这个问题的最佳方法是将代码放在一个项目中,然后调试工具就会可用。


0

对于我的情况,在设置->调试器中有两个不同的gdb路径可供选择。 当我选择第二条路径进行调试时,exe会停止。所以,我将我的调试器路径更改为正确的路径,即codeblocks安装的路径(第一条路径)。

它可以工作:)

  1. C:\Program Files (x86)\CodeBlocks\MinGW\gdb32\bin
  2. C:\Program Files\mingw-w64\x86_64-8.1.0-win32-seh-rt_v6-rev0\mingw64\bin

0

请查看以下内容:

  1. 项目路径中不要包含空格。
  2. 项目文件中不要包含空格。(例如,.cbp 文件、.c 文件)
  3. 如果您在 Ubuntu 上运行 codeblock,请确保以超级用户身份运行它。(例如,>gksu codeblocks)

可以使用下划线(_)字符代替空格。


0

我曾经面临过同样的问题,对我有效的方法是,在设置编译器和调试器菜单中选择了 gdb 后,只需创建一个新项目,不要继续在当前项目上工作,这样调试菜单就会启用。


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