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

來源:互聯網
上載者:User
這篇文章主要為大家詳細介紹了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:只是介紹,不喜勿噴。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.