建立程式碼地圖,以便在除錯時視覺化追蹤呼叫堆疊。 您可以在地圖上做筆記以追蹤程式碼正在做什麼,以便您可以專注於尋找錯誤。
您將需要:
您可以偵錯的程式碼,例如 Visual C#、Visual Basic、C++、JavaScript 或 X++
See:
-
如需瞭解您在使用程式碼對應時可使用的命令和動作的詳細資料,請參閱瀏覽和重新排列程式碼對應。
對應呼叫堆疊
開始偵錯。 (鍵盤: F5)
在您的應用程式進入中斷模式或您逐步執行函式之後,請選擇[Code Map]。 (鍵盤: Ctrl + Shift + `)
目前的呼叫堆疊會在新的程式碼對應上顯示橘色:
當您繼續偵錯時,地圖會自動更新。 請參閱 使用下一個呼叫堆疊更新地圖。
記下程式碼
新增註解以追蹤程式碼中發生的情況。 若要在註解中新增一行,請按 Shift + Return。
使用下一個呼叫堆疊更新地圖
將應用程式執行至下一個中斷點,或進入函式。 地圖會新增一個呼叫堆疊。
將相關程式碼新增至地圖
現在你有一張地圖 - 下一步是什麼? 如果您使用 C# 或 Visual Basic,請新增項目,例如欄位、屬性和其他方法,以追蹤程式碼中發生的情況。
雙擊函式以查看程式碼,或使用右鍵功能表。 (鍵盤:在地圖上選擇方法,按 F12)
在地圖上新增您要追蹤的項目。
備註
依預設,將項目新增至映射時,也會新增父群組節點,例如類別、命名空間和組件。 雖然這很有用,但您可以使用地圖工具列上的 「包括父項 」按鈕關閉此功能,或在新增項目時按 CTRL ,以保持地圖簡單。
在這裡您可以輕鬆查看哪些方法使用相同的欄位。 最近新增的項目會顯示為綠色。
繼續建置地圖以查看更多程式碼。
使用地圖尋找錯誤
視覺化程式碼可以幫助您更快地找到錯誤。 例如,假設您正在調查繪圖程式中的錯誤。 當您畫一條線並嘗試撤消它時,在您畫另一條線之前什麼也沒發生。
因此,您在 clear、undo 和 Repaint 方法中設定中斷點,開始偵錯,然後建構如下的對映:
您會注意到地圖上的所有使用者手勢都會呼叫 Repaint,但不會呼叫 undo。 這或許可以解釋為什麼 undo 不能立即起作用。
修正錯誤並繼續執行程式後,映射會將新呼叫從undo新增至Repaint:
問與答
並非所有通話都會顯示在地圖上。 Why?
根據預設,地圖上只會顯示您自己的程式碼。 若要查看外部程式碼,請在 [呼叫堆疊] 視窗中將其開啟:
或關閉 Visual Studio 偵錯選項中的 [只啟用我的程式碼] :
更改地圖會影響程式碼嗎?
變更地圖不會以任何方式影響程式碼。 請隨意重命名、移動或刪除地圖上的任何內容。
此訊息是什麼意思:「圖表可能基於舊版本的程式碼」?
程式碼可能在您上次更新地圖後已變更。 例如,地圖上的呼叫可能不再存在於程式碼中。 關閉訊息,然後嘗試重建解決方案,然後再再次更新地圖。
如何控制地圖的佈局?
開啟地圖工具列上的 「版面配置」 功能表:
變更預設版面配置。
若要停止自動重新排列地圖,請關閉偵錯時自動排版。
若要在新增項目時盡可能少地重新排列地圖,請關閉「增量版面配置」。
我可以與其他人共享地圖嗎?
您可以匯出地圖,如果您有 Microsoft Outlook,則將其傳送給其他人,或將它儲存至您的解決方案,以便將其簽入原始檔控制。
如何阻止地圖自動新增呼叫堆疊?
選擇 [按鈕] - 在地圖工具列上
。 若要手動將目前的呼叫堆疊新增至映射,請按 Ctrl + Shift + `。當您偵錯時,地圖會繼續突出顯示地圖上的現有呼叫堆疊。
項目圖示和箭頭是什麼意思?
若要取得項目的詳細資訊,請將滑鼠指標移到該項目上,然後查看項目的工具提示。 您也可以查看 圖例 以了解每個圖示的含義。
See: