教訓:使用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,便可解決一切問題,是真正的重裝。