首先要和大家說明,我自己本身並沒有使用除錯器的習慣,所以希望針對這個部份大家可以儘量提出您的意見.
我們先以一個專案做範例,假設我們使用DFL中的一個範例:toolbar.d及toolbar.res;在這之前,我們必須先編譯好dfl.lib及dfl_debug.lib程式庫.(可以參考
http://kuan.iteye.com/blog/189115來建立庫).
1. 進入Tools->Options->Compiler & Debugger->設定Debugger的位置,在這裡建議使用Ddbg V0.11.3版.
2. 新建專案,把toolbar.d及toolbar.res加入專案,進入檔案屬性(Project Property)的Compiler Options中將[-g][-debug][-L/SUBSYSTEM]選取打勾.
3. 選定編譯時連結DFL的偵錯庫(dfl_debug.lib),或者是在toolbar.d中加入:
debug
{
pragma( lib, "dfl_debug.lib" );
}
else
{
pragma( lib, "dfl.lib" );
}
4. 按下Rebuild All編譯生成執行檔,因為專案屬性中選擇[-g],所以此執行檔會含有除錯資訊.
5. 按下Debug->Run Debugger,此時會出現debug視窗:
6. 開啟toolbar.d文件,設定偵錯點(CTRL+滑鼠左鍵):
7. 按下Debug->Run/Resume開始除錯.
上圖中,左邊的視窗是Stack Frame,目前的Frame是以粗斜體來表示;右邊是變數視窗,右上方的Link按鍵若是按下的狀態,視窗的內容會隨著除錯的每一個step自動更新,另外右邊的Refresh按鍵則是立即更新.
8. 另外我們可以觀看Output視窗觀看除錯器輸出的訊息:
9. 我們也可以直接在Output視窗的命令列直接輸入指令:
10. 除了在Variables視窗觀看變數外,我們也可以把滑鼠移到變數上面停止不動,此時會顯示變數的內容(有時會失靈......)
11. 欲結束除錯,只要按下Debug->Stop即可.
12. 有時庫文件的跳躍似乎不太靈光,我會想辦法解決的.....