GWT SuperDevMode Debugging in Eclipse mit SDBG

Dank GWTs SuperDevMode vermisst man den langsam aufs Abstellgleis fahrenden “klassischen” DevMode kaum. Und mit der Unterstützung für Source Maps ist auch die letzte technische Einschränkung aufgehoben: Anwendungen lassen sich aus dem Java-Code heraus debuggen. Einziger Haken an der Sache ist, dass das Debugging im Browser stattfindet. Der Debugger dort ist nicht nur unkomfortabler als sein Eclipse-Pendant, sondern der Autor dieser Zeilen erwischt sich auch regelmäßig dabei Breakpoints in Eclipse statt im Browser zu setzen und sich dann zu wundern dass diese nicht greifen.

Aber eine Lösung ist in Sicht, denn SDBG schlägt eine Brücke zwischen Eclipse und Chrome und bringt das Debugging wieder zurück in die IDE. Einfach gesagt steuert SDBG den Debugger in Chrome dazu fern. Das funktioniert trotz des frühen Entwicklungsstands schon erstaunlich gut. Wir zeigen Ihnen in einem kurzen Tutorial wie Sie SDBG einrichten.

Schritt 1: SDBG Eclipse Plugin installieren

Öffnen Sie den Installations-Dialog indem Sie in Eclipse zuerst auf “Help” und dann auf “Install New Software” klicken. Unter “Available Software Sites” muss per “Add” die URL “http://sdbg.github.io/p2″ hinzufügt werden. Aus diesem Repository wird SDBG installiert.

Wählen Sie danach im Installations-Dialog unter “Work with” das gerade hinzugefügte Repository aus. Markieren Sie hier das einzige Plugin und schließen Sie danach die Installation ab. Nach einem Eclipse-Neustart ist die Installation auch schon abgeschlossen.

Schritt 2: Debug Configuration einrichten

Stellen Sie zunächst sicher, dass die GWT-Anwendung im SuperDevMode läuft und eine aktuelle Chrome-Version installiert ist. Öffnen Sie dann die Übersicht für Debug Configurations unter “Run > Debug Configurations” und legen Sie per Rechtklick auf “Launch Chrome > New” eine neue SDBG-Konfiguration an. Stellen Sie hier das “Launch target” auf URL um und tragen Sie die URL unter der GWT-Projekt verfügbar ist sowie das Projekt selbst ein. Zusätzlich empfiehlt es sich in den “Chrome settings” die “Show browser stdout”-Funktion zu aktivieren. Danach werden alle Konsolen-Ausgaben der Webanwendung in die Eclipse-Konsole umgeleitet.

Per “Debug” können Sie jetzt SDBG starten. Falls alles richtig eingerichtet ist sollte sich ein Chrome-Fenster öffnen in dem automatisch Ihre GWT-Anwendung startet.

 Schritt 3: Debugger testen

Aktivieren Sie, falls noch nicht geschehen, den SuperDevMode im Browser und setzen Sie dann an einer passenden Stelle in Ihrem Code einen Breakpoint. Wenn Sie jetzt in der Anwendung die entsprechende Funktion auslösen, sollte der Debugger in Eclipse anspringen.

Leider hat SDBG, zumindest in den aktuellen Versionen, noch ein paar kleinere Einschränkungen:

  • Im “Variables”-Tab werden die JavaScript- statt der Java-Variablen angezeigt, was die Lesbarkeit etwas erschwert
  • Einige Breakpoints, z.B. Class-Loading, funktionieren nicht
  • Conditional Breakpoints werden nicht unterstützt
  • Teilweise “verrutscht” SDBG um ein paar Zeilen im Java-Code