建立程式碼地圖,以便在除錯時視覺化追蹤呼叫堆疊。 您可以在地圖上做筆記來追蹤程式碼正在做什麼,這樣您就可以專注於尋找錯誤。
如需可與程式碼對應搭配使用的命令和動作的詳細資料,請參閱 瀏覽和重新排列程式碼對應。
這很重要
您只能在 Visual Studio Enterprise 企業版中建立程式碼對應。
以下是程式碼圖的快速一覽:
對應呼叫堆疊
在 Visual Studio Enterprise C#、Visual Basic、C++ 或 JavaScript 專案中,選取 [偵錯]> [開始偵錯] 或按 F5 來開始偵錯。
當您的應用程式進入中斷模式或逐步執行函式之後,請選取 [偵錯>],或按 Ctrl+Shift+`。
目前的呼叫堆疊會在新的程式碼對應上顯示橘色:
當您繼續偵錯時,代碼地圖會自動更新。 變更地圖項目或版面配置不會以任何方式影響程式碼。 請隨意重命名、移動或刪除地圖上的任何內容。
若要取得專案的詳細資訊,請將滑鼠停留在專案上,然後查看專案的工具提示。 您也可以選取工具列中的 圖例 ,以瞭解每個圖示的含義。
備註
訊息 圖表可能基於舊版程式碼 在程式碼地圖的頂端,這表示程式碼在您最後一次更新地圖之後可能已經變更。 例如,地圖上的呼叫可能不再存在於程式碼中。 關閉訊息,然後嘗試重建解決方案,然後再再次更新地圖。
映射外部程式碼
根據預設,地圖上只會顯示您自己的程式碼。 若要在地圖上查看外部程式碼:
在 [呼叫堆疊 ] 視窗中按一下滑鼠右鍵,然後選取 [ 顯示外部程式碼]:
或者,清除 Visual Studio 中的 [只啟用我的程式碼] 複選框:
此選項位於 [所有設定>一般] 區段下的 > (或偵錯>] 窗格中:
此選項可在 [工具 (或 偵錯) ] > 對話方塊中的 偵錯> 區段下使用:
控制地圖的版面配置
變更地圖的版面配置不會以任何方式影響程式碼。
若要控制地圖的版面配置,請選取地圖工具列上的 [版面配置] 功能表。
在 「版面配置」 功能表中,您可以:
- 變更預設版面配置。
- 停止自動重新排列地圖,方法是取消選取偵錯時自動佈局。
- 新增項目時,取消選取 Incremental Layout,儘量少重新排列地圖。
記下程式碼
您可以新增註解來追蹤程式碼中發生的情況。
若要新增註解,請在程式碼圖中按一下滑鼠右鍵,然後選取 [編輯>新註解],然後輸入註解。
若要在註解中新增一行,請按 Shift+Enter。
使用下一個呼叫堆疊更新地圖
當您將應用程式執行至下一個中斷點或逐步進入函數時,地圖會自動新增呼叫堆疊。
若要停止地圖自動新增呼叫堆疊,請在程式碼地圖工具列上選取
。 地圖會繼續強調顯示現有的呼叫堆疊。 若要手動將目前的呼叫堆疊新增至映射,請按 Ctrl+Shift+`。
將相關程式碼新增至地圖
現在您已經在 C# 或 Visual Basic 中有了一個映射,您可以新增欄位、屬性和其他方法等項目,以追蹤程式碼中發生的情況。
若要移至程式碼中方法的定義,請按兩下在地圖中的方法,或選取該方法並按 F12,或以滑鼠右鍵按一下該方法並選取 [移至定義]
若要將您要追蹤的項目新增至地圖,請以滑鼠右鍵按一下方法,然後選取您要追蹤的項目。最近新增的項目會顯示為綠色。
備註
依預設,將項目新增至映射時,也會新增父群組節點,例如類別、命名空間和組件。 您可以選取程式碼對應工具列上的 [包含父項] 按鈕,或在新增專案時按 Ctrl 來開啟或關閉此功能。
繼續建置地圖以查看更多程式碼。
使用地圖尋找錯誤
視覺化程式碼可以幫助您更快地找到錯誤。 例如,假設您正在調查繪圖應用程式中的錯誤。 當您畫一條線並嘗試撤消它時,在您畫另一條線之前什麼也沒發生。
因此,您在 clear、undo 和 Repaint 方法中設定中斷點,開始偵錯,然後建構如下的對映:
您會注意到地圖上的所有使用者手勢都會呼叫 Repaint,但不會呼叫 undo。 這或許可以解釋為什麼 undo 不能立即起作用。
修正錯誤後繼續執行應用程式,地圖會將從undo到Repaint的新呼叫新增至地圖中:
與他人共享地圖
您可以匯出地圖、使用 Microsoft Outlook 將其傳送給其他人、將它儲存到您的解決方案,以及將其簽入版本控制。
若要共用或儲存地圖,請使用 程式碼地圖工具列中的 [共用]。