Wie debugge ich einen Processor in NetBeans

Es ist schon nicht einfach einen eigenen Processor für Annotations zu schreiben, wenn man etwas Fehlerbehandlung einbauen möchte. Aber noch “schwieriger” ist es diesen Processor im Debugger betrachten zu können. Das Problem ist, dass sich die IDE im Grunde genommen selber debuggen muss. Zur IDE hat man in den seltensten Fällen ein Projekt, zu dem man einfach Strg+F5 drücken könnte. Allerdings gelingt man mit einem einfach Trick sehr schnell an das gewünschte Ziel.

Das wichtigste ist eigentlich in Blogeintrag Debugging Java Applications with NetBeans von Manikandan’s Weblog beschrieben. NetBeans selber ist ebenfalls eine Java Anwendung, die man wie alle anderen Java Anwendungen auch im Debugmodus starten kann. Unter Windows muss man die Parameter der Launcher-exe allerdings etwas anders mitgeben:

1
netbeans.exe -J-Xdebug -J-Xrunjdwp:transport=dt_socket,server=y,address=28577,suspend=n

Die Nummer bei address kann man quasi frei wählen ((Die Nummern kleiner als 1024 sollten nicht genutzt werden, da sie in der Regel für diverse Webservices reserviert sind)), aber man sollte sie sich merken. Das n hinter suspend sorgt dafür, dass die IDE einfach startet ohne auf einen anderen Debugger zu warten. Sprich: Die IDE startet, als sei nichts gewesen.

Unter Windows wird vermutlich eine Warnmeldung bezüglich der Firewall kommen. Diese Meldung kann ohne weiteres ignoriert bzw. abgebrochen werden. Die Firewall ist für unsere Zwecke nicht von Bedeutung, weil Zugriffe auf “localhost” von der Firewall nicht bearbeitet werden.

Als nächsten Schritt folgt der Punkt “Attaching the Debugger to a running application.” aus dem oben genannten Blogeintrag. Wir verbinden unsere IDE mit der “externen” Anwendung, die im Debug-Modus gestartet wurde. Die Kommunikation erfolgt über das TCP/IP Protokoll wodurch die IDE gar nicht bemerkt, dass sie im Grunde genommen Selbstgespräche führt. Für uns bedeutet dies aber, dass wir in der eigenen Processor Implementierung “beliebig” Breakpoints setzen können und diese beim übersetzen unserer Quellen automatisch angesprungen werden ((*juhuu*)).

Den Debug-Modus können wir im Übrigen gefahrlos jederzeit wieder beenden. Dies beendet nicht gleichzeitig unsere IDE. Selbstmord ist also nicht drin. Es wird lediglich die TCP/IP Verbindung gekappt, welche wir über “Attach Debugger” aber jederzeit wieder aufbauen können.

Trotz der Einfachheit sollte man bei solch einer Aktion immer im Hinterkopf behalten, dass wir gerade unsere eigene Kniescheibe mit lokaler Narkose operieren. Also bitte immer schön Vorsicht bei dem was wir da ändern.

Ein Gedanke zu “Wie debugge ich einen Processor in NetBeans

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *


− acht = 1

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>