0.序言
本片博客旨在記錄通過DEV C++工具調試C/C++代碼,在這之前需要對以下知識了解或掌握。
1.開發工具配置
我所使用的DEV C++版本為5.11,默認設置就已經支持調試了,看其他博客經常會提到默認設置無法調試,可能是使用的舊版本4.xx。這里記錄一下他們修改默認設置為可調試的步驟
-
添加std標准庫版本設置
工具》編譯選項》編譯器》編譯時加入以下命令:
-g3
-
打開調試信息
還是這個窗口,打開
代碼生成/優化
選項卡》連接器》修改產生調試信息為Yes
經過測試,上述配置會在編譯過程添加這些選項
# 預處理->生成xxx.i文件->編譯->生成xxx.s文件->匯編->生成xxx.o文件
#
g++.exe -D__DEBUG__ -c main.cpp -o main.o -I"D:/software/Dev-Cpp/MinGW64/include" -I"D:/software/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"D:/software/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include" -I"D:/software/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include/c++" -g3 -std=c++11
# 鏈接
g++.exe -D__DEBUG__ main.o -o "hello world.exe" -L"D:/software/Dev-Cpp/MinGW64/lib" -L"D:/software/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib" -static-libgcc -g3
更多完整的選項可以參考官網的文檔說明
2.調試所需源代碼
#include <iostream>
using namespace std;
int add (int a , int b){
return a+b;
}
int main(int argc, char** argv) {
int a = 1+1;
cout << "hello world!";
int b = 1+2;
int c = add(a,b);
int d = 1+3;
int e = 1+3;
return 0;
}
代碼內容很簡單,這里就不展開解釋。
3.調試過程詳解
可以去菜單欄運行下面的子菜單,了解一下每一個菜單的作用
你也可以通過工具欄的圖標來實現同樣的效果。
點擊全部重新編譯(快捷鍵F12),可以看到編譯日志記錄如下:
重新生成整個項目...
--------
- 項目文件名: D:\otherworkspace\devcppworkspace\hello world\hello world.dev
- 編譯器名: TDM-GCC 4.9.2 64-bit Debug
生成 makefile...
--------
- 文件名: D:\otherworkspace\devcppworkspace\hello world\Makefile.win
正在處理makefile...
--------
- makefile處理器: D:\software\Dev-Cpp\MinGW64\bin\mingw32-make.exe
- 命令: mingw32-make.exe -f "D:\otherworkspace\devcppworkspace\hello world\Makefile.win" clean all
rm.exe -f main.o "hello world.exe"
g++.exe -D__DEBUG__ -c main.cpp -o main.o -I"D:/software/Dev-Cpp/MinGW64/include" -I"D:/software/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"D:/software/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include" -I"D:/software/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include/c++" -g3
g++.exe -D__DEBUG__ main.o -o "hello world.exe" -L"D:/software/Dev-Cpp/MinGW64/lib" -L"D:/software/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib" -static-libgcc -g3
g++.exe -D__DEBUG__ main.o -o "hello world.exe" -L"D:/software/Dev-Cpp/MinGW64/lib" -L"D:/software/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib" -static-libgcc -g3
編譯結果...
--------
- 錯誤: 0
- 警告: 0
- 輸出文件名: D:\otherworkspace\devcppworkspace\hello world\hello world.exe
- 輸出大小: 1.88690853118896 MiB
- 編譯時間: 2.42s
開始調試代碼:
添加以下斷點
點擊開始調試按鈕之后,可以看到當前運行行背景顏色為藍色。
調試相關窗口說明如下圖。
最常見的按鈕就是調試,單步進入和停止執行