2012-11-14 5 views
5

Da meine RCP-Eclipse-Anwendung fehlschlägt, wenn sie außerhalb von Eclipse ausgeführt wird, aber in Eclipse ausgeführt wird, versuche ich Eclipse zu verwenden, um meine Anwendung remote zu debuggen, da sie außerhalb der Eclipse-Umgebung ausgeführt wird.Wie kann ich meine rcp-Anwendung remote debuggen?

Ich verwende 32 Bit Eclipse 3.6.1 auf einem 64-Bit-Windows 7-Rechner. Ich benutze 32 Bit Java 1.6 Update 37. Ich benutze den Eclipse Product Export Wizard, um die App zu paketieren, und am Ende habe ich eine eclipse.exe. Ich habe eine Remote-Debug-Konfiguration erstellt und für die Verwendung von Port 8765 (Zufallszahl) festgelegt. Für Debugging-Zwecke, beginne ich die App von der Kommandozeile mit dieser Zeile:
eclipse.exe -Xdebug -Xrunjdwp: transport = dt_socket, Adresse = 127.0.0.1: 8765

Je nachdem, ob ich bin Befestigung oder das Hören über mein Eclipse-Debugger, ich werde die Option Server = [y/n] zu dieser Befehlszeile hinzufügen, aber es scheint keinen Unterschied zu machen.

Für die Konfiguration Verbindungstyp habe ich sowohl Standard (Socket Listen) und Standard (Socket Attach) versucht. Wenn ich Socket Listen ausprobiere, beginnt mein Debugger zu horchen - "Warten auf vm, um eine Verbindung über Port 8765 herzustellen", aber wenn ich meine App über die Befehlszeile starte, startet die App gut, aber der Debugger wird nicht angehängt.

Wenn ich versuche, Sockel zu befestigen, beginne ich die App zunächst über die Befehlszeile, dann, wenn ich versuche, Eclipse zu befestigen verwenden, erhalte ich die Meldung „Fehler beim Remote-VM. Der Anschluss an eine Verbindung verweigert“

I‘ Ich habe alle verschiedenen Kombinationen von Adresse versucht: localhost, 127.0.0.1, und meine lokale IP-Adresse. Ich bekomme jedes Mal dasselbe Ergebnis.

Danke für jede Hilfe!

Antwort

9

Sie fehlen den Parameter -vmargs. Versuchen Sie "eclipse.exe -vmargs -Xdebug -Xrunjdwp: transport = dt_socket, Adresse = 127.0.0.1: 8765"

Ich war für die gleiche Sache gesucht und fand die Antwort in diesem hilfreichen Beitrag http://blog.ankursharma.org/2010/05/remote-debugging-eclipse.html

+0

Wow, es funktioniert endlich! Vielen dank für Deine Hilfe; Ich hätte diese Technik einfach aufgegeben. – JasonK

+1

Ich benötigte auch die zusätzlichen Server und suspendiere Argumente, die auf Ankuras Blog zu sehen sind: -vmargs -Xdebug -Xrunjdwp: transport = dt_socket, Server = y, suspend = n, Adresse = 1044 – Eric

1

Ich denke, eine bessere Möglichkeit zum Debuggen Ihrer RCP-Anwendung ist es mit "-console" "-consolelog" zu starten. Dies gibt Ihnen die osgi-Konsole, wo Sie untersuchen können, welche Bundles gestartet wurden (nicht), welche Dienste exportiert werden usw. Geben Sie help ein, um eine Liste der verfügbaren Befehle zu erhalten.

+0

Ich schätze Ihre Antworten. Ich habe meine Befehlszeile so geändert, dass sie die von Ihnen vorgeschlagenen Optionen enthält. Wenn ich den Status der Pakete und Dienste überprüfe, gebe ich Werte wie "faul", "aktiv" und "gelöst" zurück, und ich verstehe derzeit nicht, was das bedeutet, also klingt es so, als ob ich etwas Forschung vor mir hätte. Von dem, was ich sehen kann, sieht alles normal aus. – JasonK

+0

Sie können den Befehl diag verwenden, um festzustellen, ob die Abhängigkeiten Ihrer Bundles korrekt aufgelöst wurden. Versuchen Sie in diesem Fall, die Bundles mit dem Startbefehl zu starten. – mbelow