1.7 KiB
Debugging mit RiscEmu
Der Debugger des Emulators kann mit dem ebreak
Breakpint-Befehl gestartet werden.
Verfügbare Objekte und Funktionen
In dem interaktiven Debugger sind folgende Variablen definiert:
cpu
Der CPU der denebreak
gelesen hatmem
undmmu
ermöglichen Zugriff auf den Arbeisspeicherregs
representiert die Register des CPUs
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 CPU aus.step()
führt den nächte 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 Arbeitsspeicher angezeigt werden. Die Signator der Funktion ist etwas komplexer:
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.
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).
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.