次の方法で共有


AML デバッグの基本

AMLI デバッガーでは、 AMLI デバッガー拡張機能AMLI デバッガー コマンドの 2 種類の特殊なコマンドがサポートされています。

AML デバッグを実行するときは、デバッガー コマンド ウィンドウに表示される 2 種類のプロンプトを慎重に区別する必要があります。

  • kd> プロンプトが表示されたら、カーネル デバッガーを制御しています。 すべての標準カーネル デバッガー コマンドと拡張機能を使用できます。 さらに、AMLI デバッガー拡張機能も使用できます。 これらの拡張機能には 、!amliコマンドの構文があります。 AMLI デバッガー コマンドは、このモードでは使用できません。

  • AMLI(? for help)-> プロンプトが表示されたら、AMLI デバッガーを制御します。 (WinDbg を使用している場合、このプロンプトはデバッガー コマンド ウィンドウの上部ウィンドウに表示され、 入力> プロンプトは下部のウィンドウに表示されます)。このプロンプトから、任意の AMLI デバッガー コマンドを入力できます。 AMLI デバッガー拡張機能を入力することもできます。これらの拡張機能の前に !amli を付けてはいけません。 標準のカーネル デバッグ コマンドは、このモードでは使用できません。

  • プロンプトがまったく表示されない場合は、ターゲット コンピューターが実行されています。

デバッグ セッションの開始時に、AMLI デバッガー のオプションを !amli set 拡張機能で設定する必要があります。 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 検索拡張機能は、名前空間オブジェクトの名前を受け取り、その完全なパスを返します。

  • !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 デバッガー