Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Wie verwende ich den Befehl debug g?

Wie verwende ich den Befehl debug g?

藏色散人
藏色散人Original
2019-04-29 11:13:5810540Durchsuche

Der G-Befehl in DEBUG wird verwendet, um Code auszuführen. Seine Syntax ist „g [=Adresse] [Haltepunkte]“. an der angegebenen Stelle im Speicher. Wenn keine Parameter hinzugefügt werden, wird standardmäßig von der aktuellen IP bis zum Ende des Programms ausgeführt.

Wie verwende ich den Befehl debug g?

DEBUG Der G-Befehl wird zum Ausführen von Code verwendet. Auf diesen Befehl können Adressen und Haltepunkte folgen, d. h. das Format ist g [= Adresse] [Haltepunkte]. Wenn keine Parameter hinzugefügt werden, wird er angehalten von der aktuellen IP bis zum Ende des Programms ausführen.

Wie verwende ich den Befehl debug g?

Debug-G-Befehlssyntax

g [=address] [breakpoints]

Parameter:
Adresse, für das aktuell im Speicher befindliche Programm, angeben die Adresse, von der aus die Ausführung gestartet wird.
Haltepunkte, gibt 1 bis 10 temporäre Haltepunkte an, die als Teil des g-Unterbefehls festgelegt werden können.
?, zeigt die Liste der Debug-Unterbefehle an.

Hinweis:
Windows XP verwendet diesen Befehl nicht. Verwenden Sie es nur aus Kompatibilitätsgründen mit MS-DOS-Dateien.
Geben Sie ein gültiges Adresselement an, wobei Adresse ein zweistelliger Name ist, der einen alphabetischen Segmentdatensatz oder eine vierstellige Feldadresse plus einen Offset enthält. Segmentregister oder Segmentadressen können ignoriert werden.

CS ist der Standardabschnitt für die folgenden „Debug“-Unterbefehle: a, g, l, t, u und w. Das Standardsegment für alle anderen Befehle ist DS. Alle Werte liegen im Hexadezimalformat vor. Zwischen dem Segmentnamen und dem Offset muss ein Doppelpunkt stehen. Gültige Adressen sind wie folgt:

CS:0100
04BA:0100

Verwendung des Adressparameters
Vor dem Adressparameter muss ein Gleichheitszeichen (=) verwendet werden, um die Adresse von Haltepunkten zu unterscheiden.

Haltepunkte angeben
Unabhängig davon, wo Sie einen Haltepunkt in der Haltepunktliste eingeben, stoppt das Programm am ersten Haltepunkt. Debug.exe ersetzt die ursprüngliche Anweisung an jedem Haltepunkt durch Unterbrechungscode.

Wenn das Programm einen Haltepunkt erreicht, stellt Debug.exe alle Haltepunktadressen auf ihre ursprünglichen Anweisungen zurück und zeigt den Inhalt aller Register, den Status aller Flags und die dekodierte Form der zuletzt ausgeführten Anweisung an. Debug.exe zeigt jetzt dieselben Informationen an wie bei Verwendung des Unterbefehls r (register) und Angabe der Haltepunktadresse.

Wenn Sie das Programm nicht an einem Haltepunkt stoppen, ersetzt Debug.exe den Interrupt-Code nicht durch die ursprüngliche Anweisung.

Es ist möglich, einen Haltepunkt nur für die Adresse zu setzen, die das erste Byte des 8086-Opcodes (Opcode) enthält. Wenn mehr als 10 Haltepunkte festgelegt sind, zeigt Debug.exe die folgende Meldung an:

bp error

Benutzer-Stack-Zeiger wird verwendet
Der Benutzer-Stack-Zeiger muss gültig sein und 6 Bytes für den g-Unterbefehl verfügbar haben. Der Unterbefehl g verwendet die iret-Anweisung, um zu dem Programm zu springen, das getestet werden muss. Debug.exe legt den Benutzerstapelzeiger fest und verschiebt die Benutzerflags, das Codesegmentregister und den Befehlszeiger auf den Benutzerstapel. (Das Betriebssystem schlägt möglicherweise fehl, wenn der Benutzerstapel ungültig oder zu klein ist. Debug.exe platziert einen Unterbrechungscode (0CCh) an der angegebenen Haltepunktadresse oder an der angegebenen Adresse.

Starten Sie das Programm neu
Tun Sie dies Starten Sie das Programm nicht neu, nachdem die folgende Meldung angezeigt wird:

Program terminated normally

Um das Programm ordnungsgemäß auszuführen, muss es mithilfe der Unterbefehle n (Name) und l (Laden) neu geladen werden.

Weitere Informationen dazu Verwenden des Unterbefehls p zum Ausführen von Schleifen, wiederholten Zeichenfolgenanweisungen, Software-Interrupts oder Unterprogrammen, siehe Verwandte Themen

Informationen zur Verwendung des Unterbefehls t zum Ausführen einer Anweisung finden Sie unter „Verwandte Themen“

BeispielUm das aktuell im Speicher befindliche Programm auszuführen und an der Haltepunktadresse 7550 im CS-Segment auszuführen, geben Sie Folgendes ein:

gcs:7550

Debug.exe zeigt den Inhalt der Register und des an Status der Flags, dann beenden Sie den g-Unterbefehl

Um zwei Haltepunkte festzulegen, geben Sie Folgendes ein:


gcs:7550, cs:8000

Wenn Sie den g-Unterbefehl erneut eingeben, nachdem Debug.exe auf einen Haltepunkt stößt, erfolgt die Ausführung startet von der Anweisung nach dem Haltepunkt, nicht von der Startadresse.

Das obige ist der detaillierte Inhalt vonWie verwende ich den Befehl debug g?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn