1.8 KiB
Debugging mit RiscEmu
Der Debugger des Emulators kann mit dem ebreak
Breakpoint-Befehl gestartet werden.
Verfügbare Objekte und Funktionen
In dem interaktiven Debugger sind folgende Variablen definiert:
cpu
Die CPU, die denebreak
gelesen hatmem
undmmu
ermöglichen Zugriff auf den Arbeisspeicherregs
repräsentiert die Register der CPU
Des weiteren sind ein paar Hilfsfunktionen verfügbar:
run_ins('name', 'arg1', 'arg2', 'arg3')
führt den Befehlname arg1, arg2, arg3
an der aktuellen Stelle im Programm aus.step()
führt den nächsten Befehl auscont()
beendet den Debuggerdump(address)
gibt den Inhalt des Arbeitsspeichers an der Adresseaddress
aus. Das Verhalten der Funktion ist durch einige Parameter anpassbar, die später weiter erklärt werden.
Die dump()
Funktion
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])
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 Integers anzuschauen).
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.