1. 程式人生 > >Visual Studio中的除錯方法

Visual Studio中的除錯方法

首先在VS中寫了一段簡易的程式碼作為例子。

在VS中正常的嘗試執行即是沒有斷點的除錯,只要按下F5即可。


生成的結果如下。


在除錯時,需要設定至少一個斷點(在想設定的位置左側單擊即可)。除錯將使程式執行到斷點處暫停執行,從而開始除錯。


按下F5,可以發現程式執行到了斷點所在的這一行暫停了下來(這一行即將執行)。在箭頭位置可以觀察每個變數的取值。可以看到i作為區域性自動變數,它的值還是一個隨機數。


除錯過程有兩種常用的方法:逐語句和逐過程。逐語句(F11):每次執行一條語句,當遇到函式時,進入函式體內進行監視,對函式內部亦逐語句地執行。逐過程(F10):未碰到函式時和逐語句一樣,當碰到函式時將整個函式看作一個過程直接執行過去,而不會進入函式進行逐句的監視。

另外,跳出(Shift+F11):在函式體內使用跳出,將直接執行函式內剩餘的語句以結束該函式,達到該函式被呼叫處的後面的語句處。

下圖中的黃色箭頭表示除錯程式除錯到了這一行,並且這一行的語句尚未執行,也就是說執行了這一行之前的語句。可以看到同上一次暫停相比,i的值發生了改變,在變數調試表中i的顏色就變成了紅色,並且我們可以看到它的新值是0。


如果設定了多個斷點,每次按下F5將會執行到下一個斷點處,這也是一個很方便的除錯技巧。利用這個技巧可以跳過那些確認不會出問題而不需要監視的部分。


如下圖中按下F5,除錯從一個斷點處執行到了下一個斷點處。


找到錯誤後,按下停止除錯(Shift+F5)就可以結束除錯了。


其實可以看出,F11是一句一句地監視,Shift+F11就一次性跳出了一大塊語句的集合(一個過程);F5是從斷點之間進行除錯,Shift+F5就一次性跳出了所有斷點,即直接執行到程式尾,結束了除錯。