Visual Studio 調試程式提供許多功能強大的功能,可協助您對應用程式進行偵錯。 本主題提供快速掌握基本功能的方式。
建立新專案
開啟 Visual Studio 並建立專案。
如果 [開始] 視窗尚未開啟,請選取 [ 檔案 > 開始視窗]。 在 [開始] 視窗中,選取 [建立新的專案。 在搜尋方塊中,輸入 「Empty project」,然後選取 [空白 專案 ] 範本C++。
如果您沒有看到項目範本,請開啟 Visual Studio 安裝程式。 選擇具有 C++工作負載的桌面開發,然後選擇 [修改]。
Visual Studio 會建立專案。
建立名為 的新原始程序檔
MyDbgApp.cpp在 MyDbgApp.cpp 中,取代下列程序代碼
int main() { return 0; }使用此程式代碼(請勿移除
#include "stdafx.h"):#include <list> #include <iostream> using namespace std; void doWork() { list <int> c1; c1.push_back(10); c1.push_back(20); const list <int> c2 = c1; const int &i = c2.front(); const int &j = c2.front(); cout << "The first element is " << i << endl; cout << "The second element is " << j << endl; } int main() { doWork(); }
設定中斷點
斷點是一個標記,指出Visual Studio應該暫停執行中的程式代碼的位置,以便查看變數的值、記憶體的行為,或是程式代碼的分支是否正在執行。 這是偵錯中最基本的功能。
若要設定斷點,請按一下函式呼叫語句左側的邊界(或選取程式代碼行,然後按
doWork)。
現在按 F5 (或選擇 [ 偵錯 > 開始偵錯] 。
偵錯工具會在您設定的斷點處暫停。 調試程式和應用程式執行暫停的語句會以黃色箭號表示。 函式呼叫
doWork的行尚未執行。小提示
如果您在迴圈或遞迴中有斷點,或者有許多您經常反覆執行的斷點,請使用 條件斷點 以確保只有在符合特定條件時,才會暫停您的程式碼。 條件式斷點可節省時間,也可讓您更輕鬆地偵錯難以重現的問題。
嘗試對C++中的記憶體相關失敗進行偵錯時,您也可以使用斷點來檢查位址值(尋找 NULL)和參考計數。
瀏覽程式代碼
有不同的命令可指示偵錯工具繼續。 我們會顯示從 Visual Studio 2017 開始提供的實用程式代碼導覽命令。
在斷點暫停時,將滑鼠停留在語句 c1.push_back(20) 上,直到綠色的 執行至游標 按鈕
出現,然後按下 執行至游標 按鈕。
應用程式會繼續執行、呼叫 doWork,並在您按下按鈕的程式代碼行上暫停。
用來逐步執行程式碼的常用鍵盤命令包括 F10 和 F11。 如需更深入的指示,請參閱 第一次查看調試程式。
檢查數據提示中的變數
在目前的程式代碼行中(以黃色執行指標標示),將滑鼠停留在
c1物件上以顯示數據提示。
數據提示會顯示變數的
c1目前值,並可讓您檢查其屬性。 偵錯時,如果您看到您不預期的值,則可能在上述或呼叫程式代碼行中有錯誤。展開資料提示以查看
c1物件的目前屬性值。如果您想要固定數據提示,以便在執行程式碼時繼續查看
c1的值,請點擊小型固定圖示。 (您可以將釘選的數據提示移至方便的位置。
編輯程式代碼並繼續偵錯
如果您在偵錯會話中間識別您想要在程式碼中測試的變更,您也可以這麼做。
點選第
c2.front()第二次出現,並將c2.front()變更為c2.back()。按 F10 (或 偵錯 > 逐步執行) 幾次,以推進調試程式並執行編輯的程式代碼。
F10 會一次推進調試程式一個語句,但會略過函式而不是進入函式(您略過的程式碼仍然會執行)。
如需使用編輯後繼續和功能限制的詳細資訊,請參閱 編輯後繼續。
後續步驟
在本教學課程中,您已瞭解如何啟動調試程式、逐步執行程序代碼,以及檢查變數。 您可能會想要深入瞭解調試程式功能,以及詳細信息的連結。