日期:2014-05-16 浏览次数:20567 次
教训:使用GDB的时候,调试的目标文件名不要由数字开头,中间不要有空格。
本人因为ACM竞赛需要,机器上的C++编程环境为:C-Free 5 / CDT+Eclipse +MinGW编译器, 最近发生了不进入断点的问题,如下图所示:
直接全部忽略了,让我十分拙计。。怀疑是编译器的问题,把自带的MINGW卸掉,在网上下载了MINGW的5.16版本(不得不说,这个的官网——scorceForge被天朝墙了,翻墙的话Goagent无法管到自动下载器,对此只能说吾皇圣明),重新安装依然无效。
又单独卸载GDB,重新安装,依然无效。奇怪的是,如果不使用IDE,不用自带的调试的话,直接在命令行中操作是没有问题的。
后来发现C-FREE调用的参数存在问题——
从这里可以看出,反复提示Function "1" not defined,可是我并没有定义任何参数为1的函数啊。。。后来偶尔将文件名改成不带数字的,问题解决了。后来经过反复试验,证明了GDB对部分中文名和数字名的CPP文件支持的不到位,会出现无法调试的问题。
另外,C-FREE对轻量级开发和竞赛而言,是一个很不错的编译器。但是删除比较麻烦,有的时候会出现窗口错乱的问题,重装无效。下面给出完整的删除方法。
1、使用自带的程序删除,并删除该安装文件夹下所有文件。
2、在C:\Users\Administrator\Documents中找到C-FREE目录,全部删除。
3、C:\Users\Administrator\AppData\Roaming中找到C-FREE目录,全部删除。
4、在注册表(regedit)中找到HKEY_CURRENT_USER-Software-C-free目录,全部删除。
5、在注册表(regedit)中的HKEY_CLASSES_ROOT项下,找到CFree.c,CFree.cfp,CFree.cfpg,CFree.cpp,CFree.cpp,CFree.h,CFree.hpp项,并删除。
至此,重新安装C-FREE,便可解决一切问题,是真正的重装。