我试图在代码块中调试C++项目,但它不会在断点处停止。我阅读了其他答案,并尝试了以下几种方法:
1.(Build Options > Compiler Settings
)Produce debugging symbols
选中,strip all symbols
未选中。
1.我的文件路径中没有空格/非ascii值。
1.正在运行调试版本。
1.(Settings > Compiler > Toolchain Executables
)中的调试器设置为GDB/CDB Debugger:Default
1.(Settings > Debugger > GDB/CDB Debugger:Default
)中的可执行路径是C:\MinGW\bin\gdb.exe
。
它仍然没有在断点处停止,调试器日志提到没有找到调试符号,我在这里错过了什么?
4条答案
按热度按时间aurhwmvo1#
在试图解决这个问题时,我遇到了很多类似的问题,CodeBlocks在调试过程中忽略了断点,所以这里是我到目前为止遇到的修复方法。
1.清理和重建。
2.确保选中(Build Options > Compiler Settings)Produce debugging symbols,取消选中strip all symbols。请确保在全局设置和项目设置中完成此操作。
3.检查以确保项目文件路径中没有空格/非ASCII值。
4.检查您是否正在运行调试版本,而不是发布版本。发布版本的可执行文件将位于<project_dir>\bin\Release,而调试版本的可执行文件将位于<project_dir>\bin\Debug。
5.检查(设置>编译器>工具链可执行文件)中的调试器是否设置为GDB/CDB调试器:默认值。
6.检查(设置>调试器> GDB/CDB调试器:默认)中的可执行路径是否为有效的gdb路径,如(C:\MinGW\bin\gdb.exe)。
7.更新代码块(最后手段)。
请在评论中添加任何其他对你有用的东西。8.看看你是否有另一个MinGW,如果有,看看哪个MinGW是正确的,可以用于你的代码块。您可以通过访问设置>编译器>工具链可执行文件>编译器的安装目录来更改它们。
xmakbtuz2#
我也有这个问题,然而,这是因为很久以前我设置
设置>调试器> GDB / CDB调试器>默认>调试器初始化命令
至
“设置follow-fork-mode子项”
所以GDB实际上完全在调试另一个程序。
6kkfgxo03#
唯一对我有用的是:
带空格的路径
如果放置项目的路径/文件夹包含空格或其他特殊字符,则断点无法工作。为安全起见,请使用英文字母、数字和'_'。
来源:Debugging with Code::Blocks
您也可以查看菜单:Build->Select target->Debug
qnyhuwrf4#
对我来说,工作的事情是,删除文件
main.o
,这是包含在obj/Debug
。希望它能帮助到某人。