再論 Code Map – 在 Visual Studio 中進行圖形化偵錯,找 Bug 更容易


: 內文提及Visual Studio Ultimate已於 2015/3月改名為 Visual Studio Enterprise

各位朋友們,

在上一些說明 Code Map 如何幫助你快速了解一堆程式碼的關連,本篇將說明 Code Map 如何用圖形化的方式讓偵錯更容易!

還沒看過第一篇的朋友由此進 – 快速理解一堆程式碼的方法 – 使用 Visual Studio 2013 的 Code Map 程式碼地圖

若想學習更多可觀看這影片 – 正確的團隊寫碼標準 – 兼顧開發效率及程式碼品質

 

————————————————————————————————–

在偵錯時,請建立程式碼對應以視覺方式追蹤呼叫堆疊。 您可以在對應上做筆記,追蹤程式碼的執行狀況,以便專注於尋找並修正 Bug。

使用 Code Map 上的堆疊呼叫來偵錯

 

您將需要: Visual Studio Ultimate 2013 版本,程式碼進行偵錯,例如 .NET Visual C#、Visual Basic .NET 中, C++、JavaScript。 Visual Studio 2013 更新 2 (含) 以後版本。

影片:透過 Code Map 偵錯工具整合,以視覺化方式偵錯 (Channel 9) • 對應呼叫堆疊 • 加入有關程式碼的注意事項 • 以下一個呼叫堆疊更新對應 • 將相關程式碼加入至對應 • 使用對應尋找 Bug • 問答

  1. 偵錯。

  2. 程式碼對應]。(鍵盤:Ctrl + Shift + `)

    選擇 [Code Map] 開始對應堆疊呼叫

     

    目前的呼叫堆疊在新的 code map 上顯示橙色:

    查看 Code Map 上的堆疊呼叫

     

    對應一開始可能並不十分有趣,不過,當您繼續偵錯時,它會自動更新。 以下一個呼叫堆疊更新對應

加入註解以追蹤程式碼中發生的狀況。 Shift + Return

為 Code Map 上的堆疊呼叫加入註解

執行應用程式到下一個中斷點或逐步執行函式。 對應加入新的呼叫堆疊。

使用下一個堆疊呼叫來更新 Code Map

現在您已取得地圖,下一步做什麼? 如果您使用 Visual C# .NET 或 Visual Basic .NET,請加入項目 (例如欄位、屬性及其他方法) 以追蹤程式碼中發生的情況。

F12)

移至 Code Map 上方法的程式碼定義

 

加入您要在對應上追蹤的項目。

顯示堆疊呼叫 Code Map 上的方法中的欄位

 

與堆疊呼叫 Code Map 上的方法相關的欄位

 

您可以在這裡輕鬆查看哪些方法使用相同的欄位。 新加入的項目會以綠色顯示。

繼續建置對應來查看更多程式碼。

查看使用欄位的方法:堆疊呼叫 Code Map

 

堆疊呼叫 Code Map 上使用欄位的方法

視覺化程式碼可協助您更快速找到 Bug。 例如,假設您正在調查繪圖程式中的錯誤 (bug)。 當您繪製線條和嘗試復原時,不會發生任何動作,直到您繪製另一個線條。

因此您設定中斷點,開始偵錯,並建置對應如下:

將其他堆疊呼叫加入至 Code Map

 

Repaint,除了 undo 之外。 這可能會解譯 undo 為何不會立即執行。

undo 到 Repaint 的新呼叫:

為 Code Map 上的堆疊呼叫新增方法呼叫

  • 並非所有的呼叫會出現在地圖上。 為什麼?

    根據預設,只有您的程式碼會出現在對應上。 若要查看外部程式碼,請於 [呼叫堆疊] 視窗中開啟它,或關閉 Visual Studio 偵錯選項上的 [啟用 Just My Code]。

  • 變更對應是否會影響程式碼?

    變更對應完全不會影響程式碼。 請儘管重新命名、移動,或移除地圖上的任何項目。

  • 這個訊息是什麼意思:「圖表可能是根據舊版程式碼建立的」?

    在您上次更新對應之後,程式碼可能已經變更。 例如,在地圖上的呼叫可能不再存在於程式碼。 關閉訊息,然後在重新更新對應之前,嘗試重建方案。

  • 如何控制地圖的配置?

    版面配置] 功能表:

    • 變更預設配置。

    • 偵錯時自動配置]。

    • 累加配置]。

  • 我是否可以和其他人共用對應?

    您可以匯出對應,傳送給其他人 (如果您有 Microsoft Outlook),也可以將它儲存到方案中,以便將它簽入 Team Foundation 版本控制項。

    與其他人共用堆疊呼叫 Code Map

     

  • 如何讓地圖停止自動加入新的呼叫堆疊?

    若要手動將目前呼叫堆疊加入至對應,請按下 Ctrl + Shift + `

    在偵錯時,對應會繼續反白顯示對應上現有的呼叫堆疊。

  • 項目圖示和箭號是什麼意思?

    若要取得有關項目的詳細資訊,請參閱項目的工具提示。 您也可以查看 [圖例] 了解每個圖示表示。

    堆疊呼叫 Code Map 上的圖示代表什麼意思?

 

 

第一次認識 Code Map 由此進 – 快速理解一堆程式碼的方法 – 使用 Visual Studio 2013 的 Code Map 程式碼地圖

若想學習更多可觀看這影片 – 正確的團隊寫碼標準 – 兼顧開發效率及程式碼品質

 

Comments (0)

Skip to main content