fixed spelling errors and added clarifications
parent
29bf00c750
commit
f1acad3bc6
@ -1,32 +1,32 @@
|
|||||||
# Debugging mit RiscEmu
|
# Debugging mit RiscEmu
|
||||||
|
|
||||||
Der Debugger des Emulators kann mit dem `ebreak` Breakpint-Befehl gestartet werden.
|
Der Debugger des Emulators kann mit dem `ebreak` Breakpoint-Befehl gestartet werden.
|
||||||
|
|
||||||
## Verfügbare Objekte und Funktionen
|
## Verfügbare Objekte und Funktionen
|
||||||
|
|
||||||
In dem interaktiven Debugger sind folgende Variablen definiert:
|
In dem interaktiven Debugger sind folgende Variablen definiert:
|
||||||
|
|
||||||
* `cpu` Der CPU der den `ebreak` gelesen hat
|
* `cpu` Die CPU, die den `ebreak` gelesen hat
|
||||||
* `mem` und `mmu` ermöglichen Zugriff auf den Arbeisspeicher
|
* `mem` und `mmu` ermöglichen Zugriff auf den Arbeisspeicher
|
||||||
* `regs` representiert die Register des CPUs
|
* `regs` repräsentiert die Register der CPU
|
||||||
|
|
||||||
Des weiteren sind ein paar hilfsfunktionen verfügbar:
|
Des weiteren sind ein paar Hilfsfunktionen verfügbar:
|
||||||
|
|
||||||
* `run_ins('name', 'arg1', 'arg2', 'arg3')` führt den befehl `name arg1, arg2, arg3` an der aktuellen Stelle im CPU aus.
|
* `run_ins('name', 'arg1', 'arg2', 'arg3')` führt den Befehl `name arg1, arg2, arg3` an der aktuellen Stelle im Programm aus.
|
||||||
* `step()` führt den nächte Befehl aus
|
* `step()` führt den nächsten Befehl aus
|
||||||
* `cont()` beendet den debugger
|
* `cont()` beendet den Debugger
|
||||||
* `dump(address)` gibt den Inhalt des Arbeitsspeichers an der Adresse `address` aus, das Verhalten der Funktion ist durch einige Parameter anpassbar, die später weiter erklärt werden.
|
* `dump(address)` gibt den Inhalt des Arbeitsspeichers an der Adresse `address` aus. Das Verhalten der Funktion ist durch einige Parameter anpassbar, die später weiter erklärt werden.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Die `dump()` Funktion
|
## Die `dump()` Funktion
|
||||||
|
|
||||||
Mit hilfe dieser Funktion kann der Arbeitsspeicher angezeigt werden. Die Signator der Funktion ist etwas komplexer:
|
Mit hilfe dieser Funktion kann der Inhalt des Arbeitsspeichers angezeigt werden. Die Signatur der Funktion ist etwas komplexer:
|
||||||
|
|
||||||
`dump(start, [end], [fmt], [bytes_per_row], [rows], [group], [highlight])`
|
`dump(start, [end], [fmt], [bytes_per_row], [rows], [group], [highlight])`
|
||||||
|
|
||||||
Es ist möglich einen festgelegten bereich an zu zeigen, in dem `start` und `end` angegeben werden. Es ist auch möglich nur `start` zu verwenden, dann werden `rows` (standardmäßig 10) zeilen um die adresse `start` herum ausgegeben, und die Werte an der Adresse hervorgehoben. Eine andere Stelle zum hervorheben kann mit `highlight` bestimmt werden.
|
Es ist möglich einen festgelegten Bereich anzuzeigen, indem `start` und `end` angegeben werden. Es ist auch möglich nur `start` zu verwenden, dann werden `rows` (standardmäßig 10) Zeilen um die Adresse `start` herum ausgegeben, und die Werte an der Adresse hervorgehoben. Eine andere Stelle zum Hervorheben kann mit `highlight` bestimmt werden.
|
||||||
|
|
||||||
Mit `bytes_per_row` kann angegeben werden, wie viele bytes pro zeile ausgegeben werden, und `group` gibt an, wie viele bytes zusammen zu einem Wert gruppiert werden (z.B. praktisch um 32bit Inteegers an zu schauen).
|
Mit `bytes_per_row` kann angegeben werden, wie viele Bytes pro Zeile ausgegeben werden, und `group` gibt an, wie viele Bytes zusammen zu einem Wert gruppiert werden (z.B. praktisch um 32bit Integers anzuschauen).
|
||||||
|
|
||||||
Das Ausgabeformat kann mit dem `fmt` Argument angegeben werden, standardmäßig ist das `hex`, andere möglichkeiten sind `int`, `uint` für Ganzzahlen und `char` für Ascii-Text.
|
Das Ausgabeformat kann mit dem `fmt` Argument angegeben werden, standardmäßig ist das `hex`. Andere Möglichkeiten sind `int`, `uint` für positive Ganzzahlen und `char` für ASCII-Text.
|
||||||
|
Loading…
Reference in New Issue