共用方式為


WinDbg 中的元件程式代碼偵錯 (傳統)

在 WinDbg 中,您可以輸入命令或使用 [反組譯] 視窗來檢視元件程式碼。

調試程式命令視窗

您可以在 [偵錯工具命令] 視窗中輸入其中一個 u、ub、uu (Unassemble) 命令來檢視元件程式碼。

反汇编窗口

欲開啟或切換至「反組譯」視窗,請從「檢視」選單中選擇「分解」。 (您也可以按 ALT+7 或選取工具列上的 [反組譯 ] 按鈕。ALT+SHIFT+7 將關閉 [反組譯視窗]。

下列螢幕擷取畫面顯示 [反組譯] 視窗的範例。

WinDbg 中 [反組譯] 視窗的螢幕擷取畫面。

偵錯工具會取得記憶體區段,將它解譯為二進位機器指令,然後反組譯它以產生機器指令的組合語言版本。 產生的程式碼會顯示在「反組譯」視窗中。

在「反組譯」視窗中,您可以執行下列動作:

  • 若要反組譯記憶體的不同區段,請在 [位移] 方塊中,輸入您要反組譯的記憶體位址。 (您可以在輸入地址後按 ENTER,但不必這樣做。「反組譯」視窗會在您完成位址之前顯示程式碼;您可以忽略此代碼。

  • 若要查看記憶體的其他區段,請選取 [上一 頁] 或 [下一步 ] 按鈕,或按 [向上翻頁] 或 [向下翻頁] 鍵。 這些命令會分別顯示記憶體前一或後續區段的反組譯程式碼。 透過按向右箭頭、向左箭頭、向上箭頭和向下箭頭鍵,您可以在視窗內導航。 如果您使用這些鍵移出頁面,則會出現一個新頁面。

「反組譯」視窗有一個工具列,其中包含兩個按鈕和一個包含其他命令的捷徑功能表。 若要存取功能表,請選取並按住 (或右鍵按一下) 標題列,或選取視窗右上角附近出現的圖示。 下列清單描述一些功能表命令。

  • 移至目前位址 會開啟「來源」視窗,其中包含與「反組譯」視窗中所選行相對應的來源檔案,並反白顯示此行。

  • 目前指令之前反組譯會導致目前行放置在「反組譯」視窗的中間。 此命令是預設選項。 如果清除此指令,目前線將顯示在「反組譯」視窗的頂端,這可以節省時間,因為反向反組譯可能非常耗時。

  • 突出顯示當前源代码行的指令會導致與當前源代码行相對應的所有指令被突出顯示。 通常,單個源行將對應於多個組合指令。 如果程式代碼已優化,這些組合語言指令可能不是連續的。 此指令可讓您尋找從現行來源行組合的所有指令。

  • 顯示每個指令的來源行 顯示與每個組合指示相對應的來源行號。

  • 顯示每個指令的來源檔案 會顯示與每個組合指令相對應的來源檔案名稱。

另請參閱

如需元件偵錯和相關命令的詳細資訊,以及元件顯示的完整說明,請參閱在 元件模式中偵錯