Das Wissensportal für IT-Professionals. Entdecke die Tiefe und Breite unseres IT-Contents in exklusiven Themenchannels und Magazinmarken.

heise conferences gmbh

(vormals SIGS DATACOM GmbH)

Lindlaustraße 2c, 53842 Troisdorf

Tel: +49 (0)511/5352-100

service-sigs@heise.de

Disassembler [1] – javap in Aktion

Wenn ich bei meinen Kollegen herumfrage, ob sie mit einem Disassembler umgehen können, schaue ich meist in fragende Gesichter. Wenn ich dann auch noch erzähle, dass sich selbst in der Standardinstallation (im bin-Verzeichnis) ein solcher, nämlich javap, befindet, kommt noch eine gewisse Sprachlosigkeit hinzu. Was ein Disassembler ist beziehungsweise wie er beim Debugging helfen kann, darum soll es in dieser Folge gehen.

Was ist ein Disassembler?

Wie du sicherlich weißt, übersetzt der Java-Compiler javac die von dir geschriebenen Klassen in Binärdateien, die dann den Maschinencode enthalten, der direkt auf der Java Virtual Machine (JVM) ausgeführt werden kann.

Kleiner Ausblick am Rande – dabei muss die JVM gar nicht virtuell sein. Schaut man zum Beispiel in die Dissertation von Martin Schöberl [2], so wird dort ein echter Prozessor beschrieben, der Java-Klassen ausführen kann. Tja auch so etwas hat es mal gegeben…