共用方式為


偵錯環境

有六個可用的偵錯環境:

  • 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核心調試程式 (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則會繼承調用它的命令提示符視窗。

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

start cdb parameters
ntsd parameters

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

另請參閱

Windows 偵錯

WinDbg 功能