訓練
模組
使用 Visual Studio 偵錯工具對 .NET 應用程式進行互動式偵錯 - Training
了解如何使用 Visual Studio 有效率地對 .NET 應用程式進行偵錯,以便快速修正錯誤 (Bug)。 使用 Visual Studio 內的互動式偵錯工具來分析並修正您的 C# 應用程式。
作者:Mark Russinovich 和 Ken Johnson
發佈日期:2020 年 4 月 28 日
下載 LiveKd (700 KB)
LiveKD 是我為針對《Inside Windows 2000,第三版》附贈 CD 撰寫的一個公用程式,現已免費提供。 利用 LiveKD,可以在本機即時系統上執行 Microsoft 核心偵錯工具 Kd 和 Windbg,這兩個工具是 Debugging Tools for Windows 套件的一部分。 執行所有對損毀傾印檔案上運作的偵錯工具命令,以深入系統內調查。 若要了解如何使用核心偵錯工具瀏覽系統,請參閱 Debugging Tools for Windows 文件以及我們的書籍。
雖然最新版的 Windbg 和 Kd 在 Windows Vista 和 Server 2008 上功能差不多,但 LiveKD 可實現更多功能,例如使用 !thread 命令檢視執行緒堆疊,而不是 Windbg 和 Kd 自身的即時核心偵錯設施。
首先,從 Microsoft 的網站下載並安裝 Debugging Tools for Windows 套件:
https://msdn.microsoft.com/library/windows/hardware/ff551063(v=vs.85).aspx
如果您將工具安裝到預設目錄 \Program Files\Microsoft\Debugging Tools for Windows,那麼可以從任何目錄執行 LiveKD;如果未安裝到預設目錄,那麼應將 LiveKD 複製到工具的安裝目錄。
如果您尚未為執行 LiveKD 的系統安裝符號,LiveKD 會詢問您是否要自動設定系統以使用 Microsoft 符號伺服器 (如需了解符號檔和 Microsoft 符號伺服器,請參閱 Debugging Tools for Windows 文件)。
注意:Microsoft 偵錯工具會報錯,提示找不到 LIVEKDD.SYS 的符號。 這是預期行為,因為我還沒有為 LIVEKDD.SYS 提供符號,但並不影響偵錯工具的行為。
使用方式:
liveKd [[-w]|[-k <偵錯工具>]|[-o 檔案名稱]] [-vsym] [-m[旗標] [[-mp 處理序]|[pid]]][偵錯工具選項]
liveKd [[-w]|[-k <偵錯工具>]|[-o 檔案名稱]] -ml [偵錯工具選項]
liveKd [[-w]|[-k <偵錯工具>]|[-o 檔案名稱]] [[-hl]|[-hv <VM 名稱> [[-p]|[-hvd]]]] [偵錯工具選項]
參數 | 描述 |
---|---|
-hv | 指定要偵錯之 Hyper-V VM 的名稱或 GUID。 |
-hvd | 只包含 Hypervisor 頁面 (僅限 Windows 8.1 和更高版本)。 |
-hvl | 列出執行 Hyper-V VM 的名稱和 GUID。 |
-k | 指定要執行之偵錯工具映射的完整路徑和檔案名 |
-m | 建立鏡像傾印,這是核心記憶體的一致檢視。 只有核心模式記憶體可用,而且這個選項可能需要大量的可用實體記憶體。 旗標遮罩,指定可以選擇性地提供要包含的區域 (從下表中選取,預設值為 0x18F8): 0001 - 處理序專用,0002 - 對應檔案, 0004 - 共用區段,0008 - 頁表頁, 0010 - 分頁集區,0020 - 非分頁集區, 0040 - 系統 PTE,0080 - 會話頁面, 0100 - 中繼資料檔案,0200 - AWE 使用者頁面, 0400 - 驅動程式頁面,0800 - 核心堆疊, 1000 - WS 中繼資料,2000 - 大型頁面 預設值會擷取大部分的核心記憶體內容,建議使用預設值。 此選項可與 -o 搭配使用,以提高儲存速度和傾印一致性。 鏡像傾印需要 Windows Vista 或 Windows Server 2008 或更高版本。 Sysinternals RamMap 提供了一份圖形摘要,顯示可供選取以包含在內的可用記憶體區域。 |
-ml | 使用原生支援產生即時傾印 (僅限 Windows 8.1 和更高版本)。 |
-mp | 指定單一處理序,其使用者模式記憶體內容應該包含在鏡像傾印中。 只有與 -m 選項一起使用才有效。 |
-o | 將 memory.dmp 儲存至磁碟,而不是啟動偵錯工具。 |
-p | 當 LiveKd 運作時,暫停目標 Hyper-V VM (建議與 -o 一起使用)。 指定要偵錯之 Hyper-V VM 的名稱或 GUID。 |
-hvl | 列出執行 Hyper-V VM 的名稱和 GUID。 |
-vsym | 顯示符號載入作業的詳細偵錯資訊。 |
-w | 執行 windbg 而不是 kd |
所有其他選項都會傳遞至偵錯工具。
注意:如果偵錯工具停止回應,請使用 Ctrl-Break 來終止並重新啟動偵錯工具。
根據預設,LiveKd 會執行 kd.exe。
下載 LiveKd (700 KB)
執行平台:
訓練
模組
使用 Visual Studio 偵錯工具對 .NET 應用程式進行互動式偵錯 - Training
了解如何使用 Visual Studio 有效率地對 .NET 應用程式進行偵錯,以便快速修正錯誤 (Bug)。 使用 Visual Studio 內的互動式偵錯工具來分析並修正您的 C# 應用程式。