訓練
模組
使用 Visual Studio 偵錯工具對 .NET 應用程式進行互動式偵錯 - Training
了解如何使用 Visual Studio 有效率地對 .NET 應用程式進行偵錯,以便快速修正錯誤 (Bug)。 使用 Visual Studio 內的互動式調試程式來分析和修正您的 C# 應用程式。
本節說明如何記錄時間旅行偵錯(TTD)追蹤記錄。 在 WinDbg 中,有兩種方式可以記錄追蹤:啟動可執行檔(進階) 和 附加至程序。
若要啟動可執行檔並記錄 TTD 追蹤,請遵循下列步驟。
在 WinDbg 中,選取 [檔案>開始偵錯>啟動可執行檔] [進階]。
輸入您想要記錄的使用者模式可執行檔案路徑,或選取 [ 瀏覽 ] 以瀏覽至可執行檔。 如需在 WinDbg 中使用 [啟動可執行檔] 功能表的詳細資訊,請參閱 WinDbg - 啟動使用者模式會話。
勾選使用時間旅行偵錯紀錄方塊,以便在啟動可執行檔時記錄追蹤。
如果您選取 [ 設定] 和 [記錄 ],您將能夠設定追蹤檔案的位置。
若要將錄製限制為特定模組,請檢查「記錄執行子集」,然後在模組名稱中輸入 。 例如,如果您只想要記錄 notepad.exe的執行,請在文字框中輸入 「notepad.exe」。 如果您想要記錄 notepad.exe 和 kernelbase.dll的執行,請在文字框中輸入 「notepad.exe,kernelbase.dll」。
選取 [確定 ] 以啟動可執行檔並開始錄製。
錄製對話方塊隨即出現,表示正在記錄程式執行紀錄。
如需錄製的相關信息 ,請參閱如何錄製 。
若要將程序附加並記錄 TTD 追蹤,請遵循以下步驟。
在 WinDbg 中,選取 [ 檔案>開始偵錯>附加至進程]。
選取您想要追蹤的使用者模式程式。 如需在 WinDbg 中使用 [附加至進程 ] 功能表的相關信息,請參閱 WinDbg - 啟動使用者模式會話。
勾選 [ 時間旅行偵錯的記錄程序 ] 方塊,以在可執行檔案啟動時建立追蹤。
選取 [附加 ] 以開始錄製。
錄製對話框隨即出現,表示正在記錄追蹤。
如需錄製的相關信息 ,請參閱如何錄製 。
這個過程會被記錄下來,因此您需要在這個階段引發您想要偵錯的問題。 您可以開啟有問題的檔案,或選取應用程式中的特定按鈕,造成感興趣的事件發生。
顯示錄製對話框時,您可以:
錄製完成後,請關閉您的應用程式,或按 [停止並偵錯]。
注意
[停止和偵錯]和[取消]都有可能終止相關聯的程序。
當記錄的應用程式終止時,追蹤檔案將會關閉並寫出至磁碟。 如果您的程式也當機,就會發生這種情況。
開啟追蹤檔案時,調試程式會自動為追蹤檔案編製索引。 編製索引可讓您更準確且更快速地查閱記憶體值。 對於較大的追蹤檔案,此索引編製程式需要較長的時間。
...
00007ffc`61f789d4 c3 ret
0:000> !index
Indexed 1/1 keyframes
Successfully created the index in 96ms.
注意
關鍵幀是在追蹤中用於編製索引的位置。 關鍵影格會自動生成。 較大的軌跡將包含更多關鍵影格。 當追蹤編製索引時,就會顯示主要畫面格的數目。
此時,您在追蹤檔案的開頭,已準備好在時間中向前和向後移動。
提示
使用斷點是一種常見的方法,可以在你感興趣的事件上暫停程式執行。 TTD 的獨特功能是,您可以設定斷點,並回到過去,直到抵達該斷點為止,這是在記錄追蹤之後進行的。 在發生問題之後檢查進程狀態的能力,若要判斷斷點的最佳位置,可啟用其他偵錯工作流程。 如需過去使用斷點的範例,請參閱時間移動偵錯 - 範例應用程式逐步解說。
現在您已記錄 TTD 追蹤,您可以重新執行追蹤回溯或處理追蹤檔案,例如與同事共用。 如需詳細資訊,請參閱這些主題。
訓練
模組
使用 Visual Studio 偵錯工具對 .NET 應用程式進行互動式偵錯 - Training
了解如何使用 Visual Studio 有效率地對 .NET 應用程式進行偵錯,以便快速修正錯誤 (Bug)。 使用 Visual Studio 內的互動式調試程式來分析和修正您的 C# 應用程式。