共用方式為


基本 AML 偵錯

AMLI 偵錯工具支援兩種類型的特殊化命令: AMLI 偵錯工具延伸模組AMLI 偵錯工具命令

當您執行 AML 偵錯時,您應該仔細區分 [偵錯工具命令] 視窗中會出現的兩種不同類型的提示:

  • 當您看到 kd> 提示時,您正在控制核心偵錯工具。 所有標準核心偵錯工具命令和延伸模組都可供使用。 此外,AMLI 偵錯工具延伸模組也可供使用。 這些延伸模組的語法為 !amli命令。 AMLI 偵錯工具命令在此模式中無法使用。

  • 當您看到 AMLI(? for help)-> 提示時,您正在控制 AMLI 偵錯工具。 (當您使用 WinDbg 時,此提示會出現在偵錯工具命令視窗的頂端窗格中,而 輸入> 提示會出現在底部窗格中。從此提示中,您可以輸入任何AMLI Debugger命令。 您也可以輸入任何 AMLI 偵錯工具延伸模組;這些延伸模組不應以 !amli 為前置詞。 標準核心偵錯命令在此模式中無法使用。

  • 當您完全看不到任何提示時,目標電腦正在運行。

在任何偵錯會話開始時,您應該使用 !amli set 副檔名來設定 AMLI 偵錯工具選項。 verboseontraceonerrbrkon 選項也非常有用。 您應該考慮激活 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 程式碼。 使用 runpt 指令來執行這些動作。

如需延伸模組和命令的完整清單,請參閱 使用 AMLI 偵錯工具延伸模組使用 AMLI 偵錯工具命令

另請參閱

AMLI 調試程式