偵錯環境

有六個可用的偵錯環境:

  • WinDbg
  • WinDbg (傳統)
  • 核心除錯程式 (KD)
  • NTKD
  • 主控台除錯程式 (CDB)
  • NT 符號調試程式 (NTSD)

下列各節說明偵錯環境。

WinDbg

WinDbg 是最新版的 WinDbg,具有新式視覺效果、更快速的視窗,以及完整的腳本體驗,是使用可延伸調試程序數據模型前端和中心建置的。 WinDbg 使用與 WinDbg 相同的基礎引擎(傳統版),因此您用來處理的所有命令、延伸模組和工作流程仍會像以前一樣運作。

如需詳細資訊,請參閱 WinDbg 功能

WinDbg (傳統)

Microsoft Windows 調試程式 WinDbg (傳統) 是 Windows 型調試程式,能夠同時進行使用者模式和內核模式偵錯。 WinDbg 提供 Windows 核心、內核模式驅動程式和系統服務的偵錯,以及使用者模式應用程式和驅動程式。

WinDbg 會使用 Visual Studio 偵錯符號格式進行來源層級偵錯。 它可以從具有 PDB 符號檔的模組存取任何符號或變數,並可存取使用 COFF 符號檔編譯的模組所公開的任何公用函式名稱(例如 Windows .dbg 檔案)。

WinDbg 可以檢視原始碼、設定斷點、檢視變數(包括 C++ 物件)、堆疊追蹤和記憶體。 其 [調試程式命令] 視窗可讓使用者發出各種不同的命令。

針對內核模式偵錯,WinDbg 通常需要兩部計算機(主計算機和目標計算機)。 WinDbg 也支援使用者模式和內核模式目標的各種遠端偵錯選項。

WinDbg 是CDB/NTSD和 KD/NTKD 的圖形化介面對應專案。

Kd

Microsoft Kernel Debugger (KD) 是字元型控制台程式,可在所有 NT 型作業系統上深入分析內核模式活動。 您可以使用 KD 來偵錯內核模式元件和驅動程式,或監視作業系統本身的行為。 KD 也支援多處理器偵錯。

一般而言,KD 不會在偵錯的計算機上執行。 您需要兩部計算機( 主計算機目標計算機),才能進行內核模式偵錯。

NTKD

KD 調試程式有名為NTKD的變化。 它與 KD 一樣,不同之處在於它會在啟動時繁衍新的文字視窗,而 KD 會繼承叫用它的命令提示字元視窗。

CDB

Microsoft 控制台調試程式 (CDB) 是以字元為基礎的控制台程式,可對 Windows 使用者模式記憶體和建構進行低階分析。 名稱 主控台調試程式 是用來指出CDB分類為主控台應用程式的事實;它並不表示目標應用程式必須是控制台應用程式。 事實上,CDB 完全能夠偵錯控制台應用程式和圖形化 Windows 程式。

CDB 對於偵錯目前正在執行或最近當機的程式非常強大(即時分析),但設定簡單。 它可用來調查工作應用程式的行為。 如果應用程式失敗,CDB 可用來取得堆疊追蹤,或查看有罪的參數。 它可在網路之間運作良好(使用遠端訪問伺服器),因為它是以字元為基礎的。

透過CDB,您可以顯示和執行程式代碼、設定斷點,以及檢查和變更記憶體中的值。 CDB 可以藉由反組譯並顯示元件指示來分析二進位程序代碼。 它也可以直接分析原始程式碼。

因為CDB可以透過位址或全域符號存取記憶體位置,所以您可以依名稱而非位址來參考資料和指示,讓您輕鬆地尋找和偵錯特定區段的程式代碼。 CDB 支援偵錯多個線程和進程。 它是可延伸的,而且可以讀取和寫入分頁和非分頁記憶體。

如果目標應用程式本身是主控台應用程式,目標會與CDB共用主控台視窗。 若要繁衍目標主控台應用程式的個別控制台視窗,請使用 -2 命令行選項。

NTSD

CDB 調試程式有名為 Microsoft NT 符號調試程式 (NTSD) 的變化。 這與CDB一樣,不同之處在於啟動CDB時會繁衍新的文字視窗,而CDB會繼承叫用它的命令提示字元視窗。

由於 start 命令也可以用來繁衍新的控制台視窗,因此下列兩個建構會提供相同的結果:

start cdb parameters
ntsd parameters

您可以從 NTSD (或 CDB) 重新導向輸入和輸出,以便從核心調試程式控制它(Visual Studio、WinDbg 或 KD)。 如果這項技術與 NTSD 搭配使用,則完全不會顯示任何控制台視窗。 因此,從核心調試程式控制 NTSD 特別有用,因為它會產生極其羽量型的調試程式,幾乎不會負擔包含目標應用程式的電腦上。 這個組合可用來偵錯系統進程、關機,以及啟動的後續階段。 如需詳細資訊,請參閱 從核心調試程式控制使用者模式調試程式

另請參閱

Windows 偵錯

WinDbg 功能