七個在 Visual Studio 偵錯時查看變數值的方法

當您執行您的程式而發現有地方結果不如預期,您會如何找出問題所在呢?當我還在學時,我學到的第一個偵錯方式就是到處加上「print()」,然後執行我的程式碼,從輸出結果來看哪裡出錯了。而如果我想要看另一個變數的值,我就會需要再加一個新的「print()」,然後重新編譯、重新執行程式。這會是一個冗長的過程,所以我很高興能告訴您有更好的方法,比起丟一些「print()」到您的程式碼中,之後還要將它們刪除。您可以使用 Visual Studio 偵錯工具來檢視變數。

在這篇文中我會講述在 Visual Studio 偵錯工具中,七種不同的方法來在偵錯的時候檢視您變數的值,而不需要修改您的程式碼。哪個方法是您已經在使用的呢?在底下留言讓我們知道。

如果您有興趣提供我們有關未來想法的回饋,請加入我們的社群來幫我們改進 Visual Studio 偵錯工具。

為了要在偵錯時查看變數的值,您需要先在中斷模式。您可以停止在一個中斷點、單步執行的其中一步或停在一個例外狀況,然後您就可以用這些技巧來取得變數的值。

1.DataTip

暫留在一個變數上來看它的值。

最常用的查看變數方法就是 DataTip。當偵錯工具停止時,將滑鼠游標移到您想看的變數上,DataTip 便會出現顯示該變數的值。

debug-1

您也可以點選在數值旁的圖釘來釘選一個 DataTip 到您的程式碼中。當您執行經過它時,可以直接在行內看到數值的改變。這在您進行迴圈內偵錯時,觀察單一數值在迴圈內不斷改變,可以派上用場。

debug-2

查看更多有關 DataTip 的資訊。

2.自動變數視窗

查看您指令指標所使用的變數。

當您停在程式碼的不同地方,自動變數視窗會自動填入所有目前這行(黃色指令指標指向的那行)所使用的變數與一些周圍的陳述式。哪些周圍陳述式中的變數會自動被填入是取決於您正在偵錯的語言,通常您會看到前三行與後一行的變數。有些語言像是 JavaScript,自動變數視窗並不支援。

debug-3

您可以從 Debug/Windows/Autos Window(Ctrl + Alt + V,A)來打開這個視窗。

3.區域變數視窗

查看目前內容的區域變數。

區域變數視窗將會填入目前有使用的區域變數。就如同自動變數視窗,有出現的變數將會自動被填入。要使用哪一個視窗取決於您想要看哪個範圍的變數。

當有任何變數數值改變時,在所有我們的變數視窗,新的值都將會變成紅字。

debug-4

您可以從 Debug/Windows/Locals Window(Ctrl + Alt + V,L)來打開這個視窗。

查看更多有關變數視窗的資訊。

4.監看式視窗

評估變數、運算式 與記錄結果。

共有四個監看式視窗可以使用。這些視窗一開始都是空白的,您可以自己新增您偵錯時需要查看的變數名稱。您可以在名稱欄輸入變數名稱,或是在您的程式碼編輯器中對變數點選右鍵,選擇「Add to Watch」。

debug-5

除了加入一個單一的變數,您還可以輸入任何一般的運算式。所以您可以呼叫方法、計算 lambdas 或做像是「1 + 3」的運算。請注意,當您執行輸入的運算式時,可能會改變您程式的狀態

debug-6

您可以從 Debug/Windows/Watch(Ctrl + Alt + W,1)來打開這個視窗。

查看更多有關監看式視窗的資訊。

5.快速監看式對話方塊

在一個一次性的彈出方塊快速地檢視一個單一變數或運算式的值與內容。

快速監看式視窗是一個您可以用來檢視單一變數或運算式的對話方塊。當您想要有更多空間檢視一個物件的所有內容,但不想要修改您的視窗配置,有這個暫時的對話方塊很方便。

debug-7

您可以在變數上點選右鍵,選擇「QuickWatch…」或使用鍵盤快捷鍵 Shift + F9,來開啟快速監看式視窗。

查看更多有關快速監看式對話方塊的資訊。

6.平行監看式視窗

同時查看在多個執行緒或遞迴呼叫的變數或運算式數值

共有四個平行監看式視窗可以使用。就像監看式視窗一樣,您可以點擊可編輯列的 <Add Watch> 輸入想要查看的變數或運算式名稱。

視窗中的每一行都表示一個不同的執行緒,所以您就可以查看同一個變數在您目前所有的執行緒。

debug-8

這也會顯示同一個執行緒下遞回的值,而每一行表示一次該函式呼叫的反覆運算。

debug-9

您可以從 Debug/Windows/Parallel Watch(Ctrl + Alt + D,1)來打開這個視窗。

查看更多有關平行監看式視窗的資訊。

7.即時運算視窗

使用這個便箋在一個時間點查看和更改變數的值。

當停在一行程式碼時,您可以輸入變數或運算式到即時運算視窗,並按下 enter 來檢視結果。即時運算視窗評估運算式就像監看式視窗一樣,有可能會影響到程式的狀態。

debug-10

您也可以用即時運算視窗來執行複雜的表達式(甚至評估 lambda 表達式),而且可以不需要編輯或重新執行您的程式就可以檢視結果。這個視窗也可以被用在設計的時候,在您開始偵錯的工作階段之前。

debug-11

您可以從 Debug/Windows/Immediate Window(Ctrl + Alt + I)來打開這個視窗。

查看更多有關即時運算視窗的資訊。

總結

這篇文章提供了一個基本概觀,用不同的方法來在 Visual Studio 檢視變數。哪個偵錯的方法您最喜歡呢?請留言在底下讓我們知道。

如果您有興趣提供我們有關未來想法的回饋,歡迎到 Visual Studio Debugger 註冊來幫助我們改進。

 

本文翻譯自 7 Ways to Look at the Values of Variables While Debugging in Visual Studio


 

VS

若對以上技術及產品有任何問題,很樂意為您服務! 請洽:台灣微軟開發工具服務窗口 – MSDNTW@microsoft.com / 02-3725-3888 #4922