Debugger

aus RHWiki, der freien Romhacking-Enzyklopädie

Als Debugger wird ein Programm bezeichnet, welches Code schrittweise ausführt und bei jedem Schritt die Inhalte der Register und des Speichers anzeigen kann. Für Konsolen erledigt dies meistens ein Emulator mit zusätzlicher Anzeige des ASM-Codes und der Speicherinhalte. Es gibt jedoch auch spezielle Entwickler-Konsolen.

Inhaltsverzeichnis

Funktionen eines Debuggers

Ein Debugger sollte mindestens die schrittweise Ausführung eines Programms (Spiels) erlauben und dabei nach jedem Schritt die aktuellen Werte verschiedener Variablen/Register anzeigen. Zusätzlich sollten mindestens einfache Breakpoints unterstützt werden, also Breakpoints, die, immer wenn die Ausführung den Breakpoint erreicht, das Programm unterbrechen und dann eine weitere schrittweise Ausführung des Programms erlauben.

Zusätzlich unterstützen manche Debugger noch andere Breakpoint-Modi, wie z.B. "Break On Write/Read" und/oder Bedingte (Conditional) Breakpoints. Dies bedeutet, dass die Debugger eingegebene Ausdrücke auswerten und je nach Ergegbnis einen Breakpoint auslösen. Außerdem gibt es häufig eine "Step-Over"-Funktion, mit der sich jeweils eine ganze Funktion (Subroutine Call) komplett überspringen lässt.

Zu den üblichen Features kommen bei Konsolendebuggern oft noch Viewer (Anzeige-Programme) für Grafik, Palette und Mapdaten hinzu, was wesentlich zur Übersicht und Verwendbarkeit dieser Debugger beiträgt. Oftmals lassen sich die Grafiken auch noch extrahieren und in einem PC-kompatiblen Format ablegen.

Verwendung

Debugger wurden ursprünglich für Softwareentwickler entwickelt, damit diese Fehler in ihren Programmen leichter finden können. Dies ist auch heute noch der eigentliche Zweck von Debuggern.

Romhacker (oder allgemein Hacker) machen sich nun die Funktionalität von Debuggern zunutze, um in Programme zu hacken und deren Funktionsweise zu entschlüsseln (und ggf. zu ändern). Zwar sieht man ohne den originalen Quellcode zunächst nur unübersichtlichen ASM-Code, doch mit viel Erfahrung kann man auch da durchblicken.

Insbesondere Komprimierungen können nur mit Hilfe von Debuggern entschlüsselt werden (oder mindestens mit einem ASM-Editor).

Bekannte Debugger

GB/C:

  • BGB (http://bgb.bircd.org/)
  • NO$GMB (http://www.work.de/nocash/gmb.htm)

GBA:

PlayStation:

  • PCSX 1.5 with Debugger
  • pSX Emulator (http://psxemulator.gazaxian.com/)

SNES:

Siehe auch

'Persönliche Werkzeuge