Condividi tramite


Debug AML di base

Il debugger AMLI supporta due tipi di comandi specializzati: estensioni del debugger AMLI e comandi del debugger AMLI.

Quando si esegue il debug AML, è necessario distinguere con attenzione due tipi diversi di prompt che verranno visualizzati nella finestra Di comando del debugger:

  • Quando viene visualizzato il prompt kd> , si controlla il debugger del kernel. Sono disponibili tutti i comandi e le estensioni del debugger del kernel standard. Inoltre, sono disponibili anche le estensioni del debugger AMLI. Queste estensioni hanno una sintassi del comando !amli. I comandi del debugger AMLI non sono disponibili in questa modalità.

  • Quando viene visualizzato il prompt AMLI(? per la Guida),> si controlla il debugger AMLI. Quando si usa WinDbg, questo prompt verrà visualizzato nel riquadro superiore della finestra Comando debugger e un La richiesta di input> verrà visualizzata nel riquadro inferiore. Da questo prompt è possibile immettere qualsiasi comando del debugger AMLI. È anche possibile immettere qualsiasi estensione del debugger AMLI; queste estensioni non devono essere precedute da !amli. I comandi di debug del kernel standard non sono disponibili in questa modalità.

  • Quando non viene visualizzato alcun prompt, il computer di destinazione è in esecuzione.

All'inizio di qualsiasi sessione di debug, è necessario impostare le opzioni del debugger AMLI con l'estensione !amli set . Anche le opzioni verboseon, traceon ed errbrkon sono molto utili. È consigliabile attivare l'opzione spewon . Per informazioni dettagliate, vedere la pagina di riferimento dell'estensione.

È possibile attivare il debugger AMLI in diversi modi:

  • Se viene rilevato un punto di interruzione nel codice AML, ACPI si interromperà nel debugger AMLI.

  • Se si verifica un errore grave o un'eccezione all'interno del codice AML (ad esempio, int 3), ACPI si interromperà nel debugger AMLI.

  • Se l'opzione errbrkon è stata impostata, qualsiasi errore AML causerà l'interruzione di ACPI nel debugger AMLI.

  • Se si desidera suddividere deliberatamente nel debugger AMLI, usare l'estensione del debugger !amli e quindi il comando g (Go). La volta successiva che qualsiasi codice AML viene eseguito dall'interprete, il debugger AMLI assumerà il controllo.

Quando si è al prompt del debugger AMLI, è possibile digitare q per tornare al debugger del kernel o digitare g per riprendere l'esecuzione normale.

Le estensioni seguenti sono particolarmente utili per il debug AML:

  • L'estensione DNS !amli visualizza lo spazio dei nomi ACPI per un oggetto specifico, l'albero dello spazio dei nomi subordinato a tale oggetto o anche l'intero albero dello spazio dei nomi. Questo comando è particolarmente utile per determinare qual è un oggetto dello spazio dei nomi specifico, ad esempio un metodo, un fieldunit, un dispositivo o un altro tipo di oggetto.

  • L'estensione !amli find accetta il nome di qualsiasi oggetto spazio dei nomi e restituisce il percorso completo.

  • L'estensione !amli u separa il codice AML.

  • L'estensione !amli lc visualizza brevi informazioni su tutti i contesti ACPI attivi.

  • L'estensione !amli r visualizza informazioni dettagliate sul contesto corrente dell'interprete. Ciò è utile quando il prompt del debugger AMLI viene visualizzato dopo che è stato rilevato un errore.

  • I punti di interruzione possono essere impostati e controllati all'interno del codice AML. Usare !amli bp per impostare un punto di interruzione, !amli bc per cancellare un punto di interruzione, !amli bd per disabilitare un punto di interruzione, !amli per riabilitare un punto di interruzione e !amli bl per elencare tutti i punti di interruzione.

  • Il debugger AMLI è in grado di eseguire, eseguire il passaggio e tracciare il codice AML. Usare i comandi run, p e t per eseguire queste azioni.

Per un elenco completo delle estensioni e dei comandi, vedere Uso delle estensioni del debugger AMLI e Uso dei comandi del debugger AMLI.

Vedi anche

The AMLI Debugger