我正在尝试在Codeblocks中调试C ++项目,但它并没有在断点处停止。我读了其他答案,到目前为止已尝试过以下内容:
Build Options > Compiler Settings
)Produce debugging symbols
已选中,strip all symbols
未选中。Settings > Compiler > Toolchain Executables
)中的调试器设置为GDB/CDB Debugger:Default
Settings > Debugger > GDB/CDB Debugger:Default
)中的可执行路径为C:\MinGW\bin\gdb.exe
。它仍然没有在断点处停止,调试器日志提到没有找到调试符号 我在这里缺少什么?
答案 0 :(得分:16)
在尝试修复此问题时,我遇到了很多类似的问题,其中CodeBlocks在调试过程中忽略了断点,所以这是我到目前为止遇到的修复。
1.清洁和重建。
2.确保选中(构建选项>编译器设置)生成调试符号,取消选中剥离所有符号。请确保在全局设置和项目设置中完成此操作。这为我解决了这个问题
3.检查项目文件路径中没有空格/非ASCII值
4.检查您是否正在运行调试版本,而不是release。Release版本中的可执行文件将是\ bin \ Release,Debug版本中的可执行文件将位于\ bin \ Debug。
5.检查(Settings> Compiler> Toolchain Executables)中的Debugger是否设置为GDB / CDB Debugger:Default。
6.检查(设置>调试器> GDB / CDB调试器:默认)中的可执行路径是否为有效的gdb路径(C:\ MinGW \ bin \ gdb.exe)。
7.更新代码块(最后的手段)
请添加其他适合您的评论。
答案 1 :(得分:3)
我也有这个问题,但是,这是因为很久以前我已经设置了
设置>调试器> GDB / CDB调试器>默认>调试器初始化命令
到
"设置跟随叉模式的孩子"
所以GDB实际上是在完全调试另一个程序。
答案 2 :(得分:0)
唯一对我有用的东西:
带空格的路径
如果您放置项目的路径/文件夹包含空格或其他特殊字符,则断点无法工作。为了安全起见,请使用英文字母,数字和'_'。
来源:Debugging with Code::Blocks
您还可以查看菜单:Build->选择target-> Debug
答案 3 :(得分:0)
对我来说,有效的方法是删除main.o
中包含的文件obj/Debug
。
希望它有所帮助。