1. 程式人生 > >codeblocks應用之debug .

codeblocks應用之debug .

一個偶然的機會,我發現了codeblocks這款IDE,因為它主要用於開發c/c++,所以沒有visual studio那麼臃腫,感覺比較快捷,好用。但是其資料多為英文,本著利人利己的初衷,我決定挑選一些開發中必須使用的功能,將官方文件譯為中文,以便查閱。本篇主要介紹此IDE的debug應用。本文基於的環境為windowsxp + codeblocks10.05。

 1.   經常使用visual studio編譯器的可能不怎麼關注編譯引數,而codeblocks使用的是gnu的gcc編譯器,所以如果希望生成可除錯的程式,需要加入命令引數-g,這個選項說明生成的可執行檔案中含有除錯標記(比如原始檔中的某行程式碼對應了哪幾條彙編指令),同時要確保一定不能選中-s選項,這個選項用來清除可執行檔案中所有的除錯標記。具體操作如下:

選單中 Project => Build Options

2.    既然是debug,就需要在除錯中對變數的值進行觀察,這時需要開啟IDE的watch視窗,開啟方式如下:

選單中debug=> Debugging windows=>watches

如圖:

當以debug方式執行程式時候會出現下面的視窗:

注意1:紅色框圈出的兩個選項可以講當前的watch列表儲存起來,也可以重新將已儲存的watch列表重新載入進來。

注意2:在進行debug時,在“call stack”除錯視窗中(調出的方式同調出watch視窗)雙擊一個棧幀(frame),但是在watch視窗中相對應的資訊不會更新,如果需要觀察特定棧幀的相應資訊,需要在"call stack"視窗中在需要觀察的棧幀那一行上右擊,然後選擇“Switch to this frame”。操作如下圖:


3.    設定斷點,除錯程式需要設定斷點,然後在watch視窗中進行觀察變數的變化。設定斷點是很重要的一環

設定斷點的方式:

(1)將滑鼠定位於需要設定斷點的那一行,然後點選選單中的 Debug => Toggle Breakpoint

(2)在需要加入斷點的那一行中右擊,然後選擇Toggle Breakpoint或者按F5快捷鍵

這樣就可以開始除錯運行了

4.    點選選單中的Debug=>start或者按F8

執行斷點處停止,如果想觀察某個變數,先要拖動滑鼠選中這個變數,然後右擊,就會有有watch+變數名這一選單項,單擊它就可以在watch視窗中加入此變量了

如圖:

注意:

如果使用的是codeblocks8.02版本,其中使用的編譯器和偵錯程式版本為 MinGW 和 gdb 6.7,則如果在c++建構函式中設定斷點,偵錯程式將不能工作,一下是一些小技巧。

設定在建構函式和解構函式中的斷點在GDB 6.7以及更低的版本中是不能工作的,但是如果在建構函式開始有成員函式的呼叫,可以將斷點設在成員函式中,然後呼叫完成員函式就可以通過next step(F7)繼續觀察建構函式呼叫。例如:

需要觀察建構函式MyClass呼叫,可以先設定一個成員函式DebugCtorDtor,講斷點設在22行,然後開始debug,程式會停在斷點處,按F7,程式執行13行,就可以檢視建構函式的呼叫情況了。