「調試是將『以為正確』轉化為『確定正確』的過程。不會調試,寸步難行。」
掌握 IDE(Visual Studio、VS Code、Code::Blocks、CLion)或命令行調試器(GDB)的基本操作,是程序員必備基本功。
| 技術 | 操作 | 用途 |
|---|---|---|
| 斷點 | F9 / 滾動條點擊 | 暫停執行,檢查狀態 |
| 單步執行 | F10 (Step Over) | 逐行執行,不進入函數 |
| 單步進入 | F11 (Step Into) | 進入函數內部 |
| 單步跳出 | Shift+F11 (Step Out) | 執行完當前函數返回 |
| 變量監視 | Watch 窗口 / 懸停 | 實時查看變量值、表達式 |
| 調用堆棧 | Call Stack 窗口 | 查看函數調用鏈 |
| 內存/寄存器 | Memory/Registers 窗口 | 底層狀態檢查 |
| 條件斷點 | 右鍵斷點 → Condition | 滿足條件才中斷(如 i==100) |
a, b。a>0, b>0,否則提示重輸。hypot(a,b) 計算斜邊 c = sqrt(a²+b²)。
1: #include
2: #include
3:
4: // 函數聲明
5: double hypot(double a, double b);
6:
7: int main() {
8: while (1) { // 無限循環,直到手動終止
9: double a, b;
10: printf("請輸入兩條直角邊長: ");
11: if (scanf("%lf %lf", &a, &b) != 2) { // 輸入失敗處理
12: printf("輸入格式錯誤\n");
13: while (getchar() != '\n'); // 清理緩衝區
14: continue;
15: }
16: if (a > 0 && b > 0) { // 合法性檢查
17: printf("斜邊長: %.4f\n", hypot(a, b));
18: } else {
19: printf("邊長必須為正數,請重新輸入!\n");
20: }
21: }
22: return 0;
23: }
24:
25: // 自定義函數:計算斜邊
26: double hypot(double a, double b) {
27: return sqrt(a*a + b*b); // 畢達哥拉斯定理
28: }
3 4,程序暫停。a、b、a*a+b*b、hypot(a,b)。sqrt 參數與返回值。-1 5,觀察第 16 行條件判斷為假,跳轉至第 19 行。scanf 設置條件斷點 a==0 && b==0,驗證邊界處理。git bisect 定位引入 Bug 的提交,比單步調試高效得多。