AMLI 偵錯工具支援兩種類型的特殊化命令: AMLI 偵錯工具延伸模組 和 AMLI 偵錯工具命令。
當您執行 AML 偵錯時,您應該仔細區分 [偵錯工具命令] 視窗中會出現的兩種不同類型的提示:
當您看到 kd> 提示時,您正在控制核心偵錯工具。 所有標準核心偵錯工具命令和延伸模組都可供使用。 此外,AMLI 偵錯工具延伸模組也可供使用。 這些延伸模組的語法為 !amli命令。 AMLI 偵錯工具命令在此模式中無法使用。
當您看到 AMLI(? for help)-> 提示時,您正在控制 AMLI 偵錯工具。 (當您使用 WinDbg 時,此提示會出現在偵錯工具命令視窗的頂端窗格中,而 輸入> 提示會出現在底部窗格中。從此提示中,您可以輸入任何AMLI Debugger命令。 您也可以輸入任何 AMLI 偵錯工具延伸模組;這些延伸模組不應以 !amli 為前置詞。 標準核心偵錯命令在此模式中無法使用。
當您完全看不到任何提示時,目標電腦正在運行。
在任何偵錯會話開始時,您應該使用 !amli set 副檔名來設定 AMLI 偵錯工具選項。 verboseon、traceon 和 errbrkon 選項也非常有用。 您應該考慮激活 spewon 選項。 如需詳細資訊,請參閱擴充功能參考頁面。
AMLI 偵錯工具有幾種途徑可以成為活躍狀態:
如果在 AML 程式代碼中遇到中斷點,ACPI 會進入 AMLI 偵錯工具進行調試。
如果 AML 程式代碼內發生嚴重錯誤或例外狀況 (例如 int 3) ,ACPI 會中斷 AMLI 偵錯工具。
如果已設定 errbrkon 選項,任何 AML 錯誤都會導致 ACPI 進入 AMLI 偵錯模式。
如果您想要刻意中斷 AMLI 偵錯工具,請使用 !amli 偵錯工具 延伸模組,然後使用 g (Go) 命令。 下次解譯器執行任何 AML 程式碼時,AMLI 偵錯工具將會接管。
當您處於 AMLI 偵錯工具提示符號時,您可以輸入 q 以返回核心偵錯工具,或輸入 g 以繼續正常執行。
下列延伸模組對於 AML 偵錯特別有用:
!amli dns 延伸模組會顯示特定物件的 ACPI 命名空間、從屬於該物件的命名空間樹狀結構,甚至是整個命名空間樹狀結構。 此指令在判斷特定命名空間物件是什麼時特別有用,無論是方法、欄位單元、裝置或其他類型的物件。
!amli find 延伸模組會採用任何命名空間物件的名稱,並傳回其完整路徑。
!amli u 延伸模組會解編 AML 程式代碼。
!amli lc 擴充套件會顯示所有作用中 ACPI 環境的簡短資訊。
!amli r 延伸模組會顯示解譯器目前內容的詳細資訊。 當偵測到錯誤之後出現 AMLI 偵錯工具提示時,這很有用。
可以在 AML 程式碼中設定和控制中斷點。 使用 !amli bp 設定中斷點, 使用 !amli bc 清除中斷點, 使用 !amli bd 停用中斷點, 使用 !amli be 重新啟用中斷點,以及 !amli bl 列出所有中斷點。
AMLI 偵錯工具能夠執行、逐步執行和追蹤 AML 程式碼。 使用 run、 p 及 t 指令來執行這些動作。
如需延伸模組和命令的完整清單,請參閱 使用 AMLI 偵錯工具延伸模組 和 使用 AMLI 偵錯工具命令。