基本 AML 偵錯

AMLI 調試程式支援兩種類型的特製化命令: AMLI 調試程式擴充 功能和 AMLI調試程式命令

當您執行 AML 偵錯時,應該仔細區分兩種將出現在 [調試程式命令] 視窗中的不同提示:

  • 當您看到 kd> 提示時,您會控制核心調試程式。 所有標準核心調試程式命令和擴充功能都可供使用。 此外,也提供AMLI調試程序擴充功能。 這些延伸模組具有 !amli 命令語法。 此模式中無法使用AMLI調試程式命令。

  • 當您看到 AMLI(? for help)-> 提示時,您正在控制AMLI調試程式。 (當您使用 WinDbg 時,這個提示會出現在 [調試程式命令] 視窗的頂端窗格中,以及 輸入> 提示會出現在底部窗格中。在此提示中,您可以輸入任何 AMLI 調試程式命令。 您也可以輸入任何 AMLI 調試程式擴充功能;這些延伸模組不應加上 !amli。 標準核心偵錯命令在此模式中無法使用。

  • 當您完全看不到提示時,目標計算機正在執行。

在任何偵錯會話的開頭,您應該使用 !amli set 擴充功能來設定 AMLI 調試程序選項。 詳細資訊traceonerrbrkon 選項也非常有用。 您應該考慮啟用 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 命名空間、該物件的命名空間樹狀結構,甚至是整個命名空間樹狀結構。 此命令在判斷特定命名空間對象是什麼時特別有用,無論是方法、fieldunit、裝置還是其他類型的物件。

  • !amli find 延伸模組會採用任何命名空間對象的名稱,並傳回其完整路徑。

  • !amli u 延伸模組會取消組譯 AML 程序代碼。

  • !amli lc 延伸模組會顯示所有使用中 ACPI 內容的簡短資訊。

  • !amli r 延伸模組會顯示解釋器目前內容的詳細資訊。 當偵測到錯誤之後,AMLI 調試程式提示出現時,這會很有用。

  • 您可以在 AML 程式代碼中設定及控制斷點。 使用 !amli bp 設定斷點,!amli bc 以清除斷點,!amli bd 停用斷點,!amli 將重新啟用斷點,!amli bl 列出所有斷點。

  • AMLI 除錯程式能夠執行、逐步執行及追蹤AML程式代碼。 使用 runpt 命令來執行這些動作。

如需延伸模組和命令的完整清單,請參閱 使用AMLI調試程式擴充 功能和 使用AMLI調試程式命令

另請參閱

AMLI 調試程式