在偵錯時建立呼叫堆疊的視覺化對應 (C#、Visual Basic、C++、JavaScript)
在您偵錯時建立 Code Map 以視覺方式追蹤呼叫堆疊。 您可以在地圖上做筆記來追蹤程式碼的執行狀況,以便專注於尋找 Bug。
如需您可搭配 Code Map 使用的命令及動作的詳細資訊,請參閱瀏覽和重新整理 Code Map。
重要
您只能在 Visual Studio Enterprise 版本中建立 Code Map。
以下是快速查看 Code Map:
對應呼叫堆疊
在 Visual Studio Enterprise C#、Visual Basic、C++或 JavaScript 專案中,選取 [偵錯>開始偵錯] 或按 F5 開始偵錯。
您的應用程式進入中斷模式或逐步執行函式之後,請選取 [偵錯>Code Map],或按 Ctrl+Shift+`。
目前的呼叫堆疊會在新的 Code Map 上顯示為橙色:
當您繼續偵錯時,Code Map 會自動更新。 變更對應圖項目或配置不會以任何方式影響程式碼。 請放心地重新命名、移動或移除對應圖上的任何項目。
若要取得項目的詳細資訊,請將滑鼠停留在項目上方,並查看項目的工具提示。 您也可以選取工具列中的 [圖例],以了解每個圖示的意義。
注意
Code Map 頂端的訊息圖表可能以舊版程式碼為基礎,表示您上次更新對應之後,程式碼可能已變更。 例如,對應圖上的某個呼叫可能已經不再存在於程式碼中。 關閉訊息,然後先嘗試重建方案後再更新對應圖。
對應外部程式碼
根據預設,只有您的程式碼會出現在對應圖上。 若要查看對應圖上的外部程式碼:
以滑鼠右鍵按一下 [呼叫堆疊] 視窗,然後選取 [顯示外部程式碼]:
或者,在 Visual Studio 工具 (或 偵錯) >選項>偵錯中取消選取啟用 Just My Code:
控制對應圖的配置
變更對應圖的配置完全不會影響程式碼。
若要控制對應圖的配置,請選取對應圖工具列上的 [配置] 功能表。
在 [配置] 功能表中,您可以:
- 變更預設的版面配置。
- 停止自動重新整理對應圖,方法是取消選取 [偵錯時自動配置]。
- 在新增項目時盡可能減少重新整理對應圖,方法是取消選取 [累加配置]。
製作程式碼的筆記
您可以加入註解以追蹤程式碼中發生的狀況。
若要新增註解,請在 Code Map 中按一下滑鼠右鍵,然後選取 [編輯>新註解],然後輸入註解。
若要在註解中新增一行,請按 Shift+Enter。
以下一個呼叫堆疊更新對應圖
當您將應用程式執行至下一個中斷點或逐步執行函式時,對應會自動新增呼叫堆疊。
若要停止自動新增呼叫堆疊的對應,請在 Code Map 工具列上選取。 對應圖會繼續反白顯示現有的呼叫堆疊。 若要手動將目前的呼叫堆疊新增至對應圖,請按下 Ctrl+Shift+`。
將相關程式碼新增至對應圖
既然您已在 C# 或 Visual Basic 中取得對應圖,您可以新增欄位、屬性和其他方法等項目,以追蹤程式碼中發生的情況。
若要移至程式碼中方法的定義,請按兩下對應圖中的方法,或選取它並按 F12,或以滑鼠右鍵按一下它,然後選取 [移至定義]。
若要將您想要追蹤的項目新增至對應圖,請以滑鼠右鍵按一下方法,然後選取您要追蹤的項目。最新加入的項目會以綠色顯示。
注意
根據預設,將項目加入對應圖也會加入父群組節點,例如類別、命名空間和組件。 您可以選取 Code Map 工具列上的 [包含父系] 按鈕,或在新增項目時按 Ctrl 來關閉和開啟此功能。
繼續建置對應圖來查看更多程式碼。
使用對應圖尋找錯誤 (bug)
視覺化程式碼可協助您更快速找到 Bug。 例如,假設您正在調查繪圖應用程式中的 Bug。 當您繪製一條線並嘗試復原時,卻沒有發生任何動作,直到您繪製另一條線為止。
因此您在 clear
、undo
和 Repaint
方法中設定中斷點、開始偵錯,並建置一個如下所示的對應圖:
您會注意到對應圖上的所有使用者手勢都呼叫 Repaint
,除了 undo
之外。 這或許能解釋 undo
未立即執行的原因。
在修正 Bug 並繼續執行應用程式之後,對應圖會加入從 undo
到 Repaint
的新呼叫:
與其他人共用對應圖
您可以匯出對應圖、使用 Microsoft Outlook 將它傳送給其他人、將其儲存至您的解決方案,並將其簽入版本控制。
若要共用或儲存對應,請在 Code Map 工具列中使用 [共用]。