Verwenden von AMLI-Debuggerbefehlen
Die folgenden Befehle können über die AMLI-Debuggeraufforderung ausgegeben werden.
Kategorie Allgemein | Spezifische Aktion | AMLI-Debuggerbefehle |
---|---|---|
Steuern des Debuggers |
Ausführungsumbruch zum Kerneldebugger fortsetzen | g q |
Steuern der AML-Ausführung |
Run-Methodenschritt über AML-Codeablaufverfolgung in AML-Code | pt ausführen |
Steuern der Einstellungen für den Ablaufverfolgungsmodus |
Konfigurieren des Ablaufverfolgungsmodus |
trace |
Benachrichtigen eines Namespaceobjekts |
Notify Namespace-Objekt |
benachrichtigen |
Anzeigen der Objektanzahltabelle |
Objektanzahltabelle anzeigen |
dc |
Zugreifen auf Arbeitsspeicher |
Datenanzeige Datenbytes Anzeigen von Datenwörtern Anzeigedaten-DWORDs Anzeigen des Speichers für datenzeichenfolgenbearbeitung | ddbdwdddae |
Zugreifen auf Ports |
Lesen von Byte aus Port Lesen von Word aus Port Read DWORD von Port Write Byte to Port Write Word to Port Write DWORD to Port | i iwidoow od |
Anzeigen der Hilfe |
Hilfe anzeigen |
? |
Steuern des Debuggers
Mit diesen Befehlen wird der AMLI-Debugger beendet. Der Befehl g setzt die normale Ausführung des Zielcomputers fort, und der Befehl q fixiert den Zielcomputer und unterbricht in den Kerneldebugger.
g
Q
Steuern der AML-Ausführung
Mit diesen Befehlen können Sie AML-Methoden ausführen oder durchlaufen. Der Befehl "Ausführen " beginnt mit der Ausführung an einem angegebenen Punkt. Mit den Befehlen "p " und "t " können Sie jeweils eine Anweisung durchlaufen. Wenn ein Funktionsaufruf auftritt, behandelt der p-Befehl die Funktion als einzelner Schritt, während der t-Befehl jeweils eine Anweisung in die neue Funktion verfolgt.
run MethodName [ArgumentList]
CodeAddress [ArgumentList] ausführen
p
t
MethodName
Gibt den vollständigen Pfad und Namen einer Methode an. Die Ausführung beginnt am Anfang des Speicherorts dieser Methode.
CodeAddress
Gibt die Adresse an, an der die Ausführung beginnen soll.
ArgumentList
Gibt eine Liste von Argumenten an, die an die Methode übergeben werden sollen. Jedes Argument muss eine ganze Zahl sein. Mehrere Argumente sollten durch Leerzeichen getrennt werden.
Steuern der Einstellungen für den Ablaufverfolgungsmodus
Der Ablaufverfolgungsbefehl steuert die Einstellungen für den Ablaufverfolgungsmodus des AML-Dolmetschers. Wenn dieser Befehl ohne Parameter verwendet wird, werden die aktuellen Einstellungen für den Ablaufverfolgungsmodus angezeigt.
trace [trigon|trigoff] [level=Level] [add=TPStrings] [zap=TPNumbers]
Trigon
Aktiviert den Ablaufverfolgungstriggermodus.
Trigoff
Deaktiviert den Ablaufverfolgungstriggermodus.
Grad
Gibt die neue Einstellung für die Ablaufverfolgungsebene an.
TPStrings
Gibt einen oder mehrere Triggerpunkte an, die hinzugefügt werden sollen. Jeder Triggerpunkt wird anhand des Namens angegeben. Mehrere Triggerpunktzeichenfolgen sollten durch Kommas getrennt werden.
TPNumbers
Gibt einen oder mehrere Triggerpunkte an, die gelöscht werden sollen. Jeder Triggerpunkt wird durch Zahl angegeben. Mehrere Triggerpunktnummern sollten durch Kommas getrennt werden. Verwenden Sie den Ablaufverfolgungsbefehl ohne Parameter, um eine Liste der Triggerpunktnummern anzuzeigen.
Benachrichtigen eines Namespaceobjekts
Der Befehl "Notify" sendet eine Benachrichtigung an ein ACPI-Namespaceobjekt. Die Benachrichtigung wird in der Warteschlange des angegebenen Objekts platziert.
ObjectName-Wert benachrichtigen
ObjectAddress-Wert benachrichtigen
ObjectName
Gibt den vollständigen Namespacepfad des Objekts an, das benachrichtigt werden soll.
ObjectAddress
Gibt die Adresse des Objekts an, das benachrichtigt werden soll.
Wert
Gibt den Benachrichtigungswert an.
Anzeigen der Objektanzahltabelle
Der Befehl "dc " zeigt die Tabelle "Speicherobjektanzahl" an.
dc
Zugreifen auf Arbeitsspeicher
Mit den Speicherzugriffsbefehlen können Sie Arbeitsspeicher lesen und schreiben. Beim Lesen des Speichers können Sie die Größe der Speichereinheiten mit dem Befehl db, dw, dd oder da auswählen. Ein einfacher d-Befehl zeigt Speicher in den zuletzt ausgewählten Einheiten an. Wenn dies der erste verwendete Anzeigebefehl ist, werden Byteeinheiten verwendet.
Wenn keine Adresse oder Methode angegeben ist, beginnt die Anzeige an der Stelle, an der der vorherige Anzeigebefehl beendet wurde.
Diese Befehle haben dieselbe Wirkung wie die standardmäßigen Kerneldebuggerspeicherbefehle; sie werden im AMLI-Debugger dupliziert, um einfachen Zugriff zu erhalten.
d[b|w|d|a] [ [l=Length] [ Methode | [%%]Adresse ] ]
e [%%]Adressdatenliste
b
Gibt an, dass die Daten in Byteeinheiten angezeigt werden sollen.
a
Gibt an, dass die Daten in Worteinheiten (16-Bit) angezeigt werden sollen.
d
Gibt an, dass die Daten in DWORD-Einheiten (32-Bit) angezeigt werden sollen.
a
Gibt an, dass die Daten als Zeichenfolge angezeigt werden sollen. Die Daten werden als ASCII-Zeichen angezeigt. Die Anzeige wird beendet, wenn ein NULL-Zeichen gelesen wird oder wenn Längenzeichen angezeigt wurden.
Länge
Gibt die Anzahl der anzuzeigenden Bytes an. Die Länge muss eine hexadezimale Zahl (ohne 0x-Präfix ) sein. Wenn "Length " nicht angegeben wird, wird die Standardanzeigegröße 0x80 Byte angegeben.
Methode
Gibt den vollständigen Pfad und Namen einer Methode an. Die Anzeige beginnt am Anfang des Speicherspeicherorts dieser Methode.
Adresse
Gibt die Speicheradresse an, an der das Lesen oder Schreiben beginnt. Wenn die Adresse zwei Prozentzeichen (%%) vorangestellt ist, wird sie als physische Adresse interpretiert. Andernfalls wird sie als virtuelle Adresse interpretiert.
DataList
Gibt die Daten an, die in den Arbeitsspeicher geschrieben werden sollen. Jedes Element in der Liste kann entweder ein Hexadezimalbyte oder eine Zeichenfolge sein. Wenn eine Zeichenfolge verwendet wird, muss sie in Anführungszeichen eingeschlossen werden. Mehrere Elemente sollten durch Leerzeichen getrennt werden.
Zugreifen auf Ports
Mit den Portbefehlen können Sie Ausgabe- oder Empfangseingaben von einem Datenport senden. Die Befehle "i and o " übertragen einzelne Bytes, die Befehle "iw " und "ow " übertragen Wörter (16 Bit) und die ID und od-Befehle übertragen DWORDS (32 Bit).
Diese Befehle haben die gleiche Wirkung wie die standardmäßigen Kerneldebuggerportbefehle; sie werden im AMLI-Debugger dupliziert, um einfachen Zugriff zu erhalten.
i Port
iw-Port
ID-Port
o Port DataForPort
Port DataForPort
od Port DataForPort
Port
Gibt die Adresse des Ports an, auf den zugegriffen werden soll. Die Portgröße muss mit dem ausgewählten Befehl übereinstimmen.
DataForPort
Gibt die Daten an, die in den Port geschrieben werden sollen. Die Größe dieser Daten muss mit dem ausgewählten Befehl übereinstimmen.
Anzeigen der Hilfe
Dieser Befehl zeigt Hilfetext für die AMLI-Debuggerbefehle an.
? [Befehl]
Befehl
Gibt den Befehl an, für den Hilfe angezeigt werden soll. Wenn dies nicht angegeben wird, wird eine Liste aller AMLI Debugger-Befehle und AMLI-Debuggererweiterungen angezeigt.