Code::Blocks调试器无法启动(Inferior 1正常退出)求助
从你的调试日志里,我一眼就抓到了核心问题——这行报错直接点明了原因:
No source file named D:/semester3/Strukdat/Fromfrends/2_createHuffTree&huffCode/huffTree&Code.c.
下面是针对性的排查和解决步骤:
清理无效断点,修正路径问题
你当前调试会话里设置了一个指向外部路径的断点,但这个路径里的&是GDB的特殊字符(会被解析为命令分隔符),导致它根本无法识别正确的文件路径。打开Code::Blocks的Debug -> Breakpoints菜单,找到这个指向Fromfrends/2_createHuffTree&huffCode/的无效断点,直接删除。之后在你当前项目(lol目录下)的源文件里重新设置断点。处理含特殊字符的外部文件目录
如果你的项目确实需要引用Fromfrends/2_createHuffTree&huffCode/下的文件,立刻给这个目录重命名——去掉&和任何特殊字符、空格(比如改成2_createHuffTree_huffCode),再更新Code::Blocks项目里的文件引用路径。特殊字符在Windows调试工具里很容易触发解析bug,这其实和你之前遇到的“目录空格导致问题”是同一类原因,只是这次特殊字符出现在了外部依赖的路径里。再次验证编译调试配置
虽然你已经开启了-g选项,但可以再快速确认两点:- 进入
Settings -> Compiler -> Debugger settings,确保-g(生成调试符号)已勾选,-s(去除调试符号)未勾选; - 切换到项目的
Debug目标,检查bin/Debug目录下的lol.exe文件大小是否合理(如果被错误去除符号,文件会明显偏小)。
- 进入
重启调试流程
做完以上操作后,先执行Build -> Clean清理旧的编译文件,再重新构建项目(Build -> Build),最后启动调试,应该就能正常进入断点了。
内容的提问来源于stack exchange,提问作者fizqi fairuz

