首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

C++ Builder 初級調試技術實戰指南

     編輯:關於C++

為什麼需要調試器

初學者常用 ShowMessage("xxx") 觀察程式流程,但在 BCB 事件驅動、元件眾多的環境下,程式流程跳躍複雜,如同組合語言的旗標暫存器,難以靠列印掌握。BCB 整合調試器功能強大,掌握 F7 F8 F5 Ctrl+F5 組合鍵即可應對大多數場景。

核心快捷鍵速查

按鍵功能口訣
F7逐步進入進函數內部
F8逐步執行不進函數,單行執行
F5斷點切換紅點標記,程式暫停
Ctrl+F5執行到游標處快速跳過無關代碼
F9執行/繼續全速運行至下一斷點

實戰演練:從 WinMain 到 Button Click

1. 程式進入點

// 調試指標指向 WinMain,尚未執行
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
    try {
        Application->Initialize();      // 第3次 F8
        Application->CreateForm(...);   // 第4次 F8 → 按 F7 進入
        Application->Run();             // 第9次 F8 → 進入訊息迴圈,視窗顯示
    } catch (...) { ... }
}

2. 表單建構函數

__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) {
    Image1->Canvas->Font->Name = "SimSun";  // 第7次 F8,游標移到 Name 按 Ctrl+F5 查看值
    Image1->Canvas->Font->Size = 30;        // 第7次 F8 後已執行
    Image1->Canvas->TextOut(0,0,Edit3->Text); // 第8次 F8
} // 第9次 F8 → 函數結束

3. 斷點實戰:雙層迴圈像素處理

void __fastcall TForm1::Button1Click(TObject *Sender) {
    AnsiString Text;
    int i, j;
    for (i=0; i<30; i++) {
        for (j=0; j<30; j++) {
            if (Image1->Canvas->Pixels[j][i] == clWhite)  // ← 游標放這行按 F5 設斷點
                Text = Text + Edit2->Text;
            else
                Text = Text + Edit1->Text;
        }
        Memo1->Lines->Add(Text);
        Text = "";
    }
}

程式停在斷點後,用 F8 逐行、Ctrl+F5 跳出迴圈、F9 繼續運行。確認無誤後取消斷點(再按一次 F5)。

調試心法

  1. 善用「執行到游標處」:跳過無關初始化代碼,直達核心邏輯。
  2. 觀察變數值:游標懸停或 Ctrl+F5 查看運算式值。
  3. 斷點只設在有效代碼行:空行、大括號無效。
  4. 組合鍵肌肉記憶:F7/F8 進/出,F5 停/走,Ctrl+F5 飛躍。

調試器不是萬能藥,但不用調試器絕對是盲人騎瞎馬。熟練掌握這幾個鍵,效率提升十倍不止。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved