標籤:返回 一行代碼 1.4 blank image 修改 基本 9.png 並且
當代碼不能正常運行時,可以通過調試定位錯誤。常用的程式調試操作包括設定斷點、開始、中斷和停止程式的執行、逐步執行程式以及使程式運行到指定的位置。下面將對這幾種常用的程式調試操作進行詳細地介紹。
1.斷點操作
斷點通知調試器,使應用程式在某點上(暫停執行)或某情況發生時中斷。發生中斷時,稱程式和調試器處於中斷模式。進入中斷模式並不會終止或結束程式的執行,所有元素(如函數、變數和對象)都保留在記憶體中。執行可以在任何時候繼續。
插入斷點有3種方式:在要設定斷點的程式碼旁邊的灰色空白中單擊;按右鍵要設定斷點的程式碼,在彈出的捷徑功能表中選擇“斷點”→“插入斷點”命令,11.4所示;單擊要設定斷點的程式碼,選擇菜單中的“調試”→“切換斷點(G)”命令,11.5所示。
圖11.5功能表列插入斷點
插入斷點後,就會在設定斷點的行旁邊的灰色空白處出現一個紅色圓點,並且該行代碼也呈高亮顯示,11.6所示。
圖11.6插入斷點後
刪除斷點主要有3種方式,分別如下:
(1)可以單擊設定了斷點的程式碼左側的紅色圓點。
(2)在設定了斷點的程式碼左側的紅色圓點上單擊滑鼠右鍵,在彈出的捷徑功能表中選擇“刪除斷點”命令,11.7所示。
圖11.7右鍵捷徑功能表刪除斷點
(3)在設定了斷點的程式碼上單擊滑鼠右鍵,在彈出的捷徑功能表中選擇“斷點”/“刪除斷點”命令。
2.開始執行
開始執行是最基本的調試功能之一,從“調試”菜單(11.8所示)中選擇“開始調試”菜單,或在原始碼視窗中按右鍵可執行代碼中的某行,從彈出的捷徑功能表中選擇“運行到游標處”菜單,11.9所示。
圖11.8選擇“啟動調試”菜單
圖11.9選擇“運行到游標處”菜單
除了使用上述的方法開始執行外,還可以直接單擊工具列中的 按鈕,啟動調試,11.10所示。
圖11.10工具列中的啟動調試按鈕
如果選擇“啟動調試”菜單,則應用程式啟動並一直運行到斷點,此時斷點處的代碼以黃色底色顯示,11.11所示。可以在任何時刻中斷執行,以查看值(將滑鼠移動到相應的變數或者對象上,即可查看其具體值,11.12所示)、修改變數或觀察程式狀態。
圖11.11運行到斷點
圖11.12查看變數的值
如果選擇“運行到游標處”命令,則應用程式啟動並一直運行到斷點或游標位置,具體要看是斷點在前還是游標在前,可以在原始碼視窗中設定游標位置。如果游標在斷點的前面,則代碼首先運行到游標處,11.13所示。
圖11.13運行到游標處
3.中斷執行
當執行到達一個斷點或發生異常時,調試器將中斷程式的執行。選擇“調試”→“全部中斷”菜單後,調試器將停止所有在調試器下啟動並執行程式的執行。程式並沒有退出,可以隨時恢複執行,此時應用程式處於中斷模式。“調試”菜單中“全部中斷”菜單11.14所示。
圖11.14“調試”→“全部中斷”菜單
除了通過選擇“調試”→“全部中斷”命令中斷執行外,也可以單擊工具列中的 按鈕中斷執行,11.15所示。
圖11.15工具列中的中斷執行按鈕
4.停止執行
停止執行意味著終止正在調試的進程並結束偵錯工作階段,可以通過選擇菜單中的“調試”→“停止調試”命令來結束運行和調試。也可以選擇工具列中的 按鈕停止執行。
5.逐步執行和逐過程執行
通過逐步執行,調試器每次只執行一行代碼,逐步執行主要是通過逐語句、逐過程和跳出這3種命令實現的。“逐語句”和“逐過程”的主要區別是當某一行包含函數調用時,“逐語句”僅執行調用本身,然後在函數內的第一個程式碼處停止。而“逐過程”執行整個函數,之後在函數外的第一行代碼處停止。如果位於函數調用的內部並想返回到調用函數時,應使用“跳出”,“跳出”將一直執行代碼,直到函數返回,然後在調用函數中的返回點處中斷。
當啟動調試後,可以單擊工具列中的 按鈕執行“逐語句”操作,單擊 按鈕執行“逐過程”操作,單擊 按鈕執行“跳出”操作,11.16所示。
圖11.16逐步執行的3種命令
說明:除了在工具列中單擊這3個按鈕外,還可以通過快速鍵執行這3種操作,啟動調試後,按下<F11>鍵執行“逐語句”操作、<F10>鍵執行“逐過程”操作、<Shift+F10>鍵執行“跳出”操作。
本文來自明日科技出版的《零基礎學C#》,轉載請註明出處!!!
如何使用Visual Studio調試C#程式