首頁  >  文章  >  後端開發  >  Visual Studio Debugger中你所不知道的小功能

Visual Studio Debugger中你所不知道的小功能

零下一度
零下一度原創
2017-07-02 10:26:351497瀏覽

這篇文章主要為大家詳細介紹了Visual Studio Debugger七個鮮為人知的小功能,具有一定的參考價值,有興趣的小夥伴們可以參考一下

Visual Studio debugger是一個很棒的調試工具,可以幫助程式猿們快速地發現和解決問題。這裡跟大家簡單介紹一下VS除錯工具中的七個鮮為人知的小功能。

1. 一鍵跳到指定語句

調試過程中常需要拖曳黃箭頭,使特定語句執行或不執行。常規方法就是使用滑鼠直接拖曳。

在Visual Studio 2017 15.3預覽版中,有一個更簡單地跳到目標行的方法:在目標行盤旋滑鼠指針,出現綠色垂直線右箭頭圖示後,按住CTRL後滑鼠左鍵點擊,就把調試黃箭頭移過去了,再點擊調試下一步或F5就直接在指定行運行了。

#2. 新增指定實例值的斷點

#有時候某個實例的屬性值會莫名其妙的變化,當我們需要知道為什麼變化的時候,會在屬性程式碼中加入斷點,但是這會對所有實例都生效。

在調試的時候,可以使用Make Object ID和Conditional Breakpoint功能去添加指定實例的斷點,具體如下:

首先我定義了一個類,並初始化了兩個物件,更改PointX的值,想要加入實例a的PointX值的改變斷點

##在偵錯過程中,右鍵執行實例a選擇Make Object ID

這時實例a被賦值到$1中,在要新增的斷點出右鍵選擇Conditions…

#新增$1 == this程式碼後,再執行程序,則在實例a屬性改變的時候斷點生效,實例b屬性改變的時候不生效了。

注意Make Object ID記錄的是記憶體中物件的位址,下次除錯的時候就改變了,需要重新設定。

3. 重新附加進程

Attach to Process是大家經常需要用的功能,Visual Studio 2017中有一個新的選項叫做Reattach to Process,可以方便大家重新附加到最近一次附加到的進程。

先附加到一個行程上,點選Stop Debugging,然後再點選Debug就能看到裡面的Reattach to Process選項了。

4. 顯示所有的執行緒

在偵錯過程中,偵錯工具列中有一個新的選項叫做:Show Threads in Source。點擊後即可在有線程停止的程式碼行前顯示一個圖標,滑鼠停留在圖標上顯示線程,右鍵點擊圖標可以顯示可用操作。

注意這個功能可能會影響偵錯效率,如果不需要的話建議預設關閉。

5. 暫時停用指定斷點

當進行多執行緒偵錯的時候,可以利用Disable Breakpoint功能暫時停用指定斷點,防止

其它執行緒由於斷點中斷,影響目前執行緒的偵錯工作。

6. 查看所有執行緒的呼叫堆疊

偵錯過程中,在Command Window中輸入”Debug.ListCallStack -AllThreads”,即可看到所有執行緒的呼叫棧。

也可以用WinDBG指令”~*k”:

7. 使用無負面效果的方法評估

有時候可能需要在調試Watch視窗中查看一個方法的回傳值,但是真正執行這個方法的時候可能會產生負面效果,這裡可以在Watch視窗輸入的時候添加」, nse」來避免負面效果,是”No Side Effects”的縮寫。範例如下:

剛開始Add執行了六次,所以testList總數是6,

#現在想查看Add目前執行的回傳值,可以在Watch視窗輸入Add(1),但這會產生負影響,改變testList的值為7,

#因此如果想不影響testList的原始值,則需要加上”, nse”,如下顯示是8,但是testList原始值未變還是7:

#介紹到此為止,有你喜歡的調試小功能麼,歡迎來評論~

PS:只是介紹,不喜勿噴。

以上是Visual Studio Debugger中你所不知道的小功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn