2012-11-14 25 views
5

Ponieważ moja aplikacja zaćmienia RCP kończy się niepowodzeniem po uruchomieniu poza zaćmieniem, ale działa poprawnie podczas działania w środowisku zaćmienia, próbuję użyć zaćmienia, aby zdalnie debugować moją aplikację, ponieważ działa ona poza środowiskiem zaćmienia.Jak zdalnie debugować aplikację rcp?

Używam 32-bitowego Eclipse 3.6.1 na 64-bitowym komputerze z systemem Windows 7. Używam 32-bitowej aktualizacji Java 1.6 37. Korzystam z kreatora eksportu produktu Eclipse, aby spakować aplikację, a ja otrzymuję plik eclipse.exe. Stworzyłem konfigurację zdalnego debugowania i ustawiłem ją na port 8765 (liczba losowa). Dla celów debugowania, ja uruchomić aplikację z poziomu wiersza poleceń za pomocą tej linii:
eclipse.exe -Xdebug -Xrunjdwp: Transport = dt_socket, address = 127.0.0.1: 8765

W zależności od tego, czy ja lub słuchania poprzez dołączenie mój debugger Eclipse, dodam opcję server = [y/n] do tego wiersza poleceń, ale wydaje się, że nie robi to żadnej różnicy.

Dla konfiguracji Typ połączenia Próbowałem zarówno Standard (Socket Listen), jak i Standard (Socket Attach). Kiedy spróbuję Socket Listen, mój debugger zacznie słuchać - "Czekam na vm, aby połączyć się z portem 8765", ale kiedy uruchomię swoją aplikację za pomocą wiersza poleceń, aplikacja zacznie działać poprawnie, ale debugger nigdy się nie załącza.

Kiedy próbuję Socket Attach, ja uruchomić aplikację pierwszym użyciu wiersza poleceń, a następnie, gdy próbuję dołączyć przy użyciu Eclipse, pojawia się komunikat "Nie można połączyć się ze zdalnym VM. Connection refused"

I ve wypróbowane wszystkie różne kombinacje adresu: localhost, 127.0.0.1 i mój lokalny adres IP. Za każdym razem otrzymuję taki sam wynik.

Dzięki za pomoc!

Odpowiedz

9

Brakuje parametru -vmargs. Spróbuj "eclipse.exe -vmargs -Xdebug -Xrunjdwp: Transport = dt_socket, address = 127.0.0.1: 8765"

szukałem tej samej rzeczy i znaleźć odpowiedź w tym pomocne postu http://blog.ankursharma.org/2010/05/remote-debugging-eclipse.html

+0

Wow, wreszcie działa! Bardzo dziękuję za Twoją pomoc; Właśnie rezygnowałem z tej techniki. – JasonK

+1

Potrzebowałem również dodatkowego serwera i zawiesiłem args widoczny na blogu Ankury: -vmargs -Xdebug -Xrunjdwp: transport = dt_socket, server = y, suspend = n, address = 1044 – Eric

1

Myślę, że lepszym sposobem na debugowanie aplikacji RCP jest uruchomienie jej za pomocą "-console" "-consolelog". To daje ci konsolę osgi, w której możesz sprawdzić, które pakiety (nie) zostały uruchomione, wyeksportowane usługi itp. Wpisz help, aby uzyskać listę dostępnych poleceń.

+0

Doceniam Odpowiadać. Zmodyfikowałem wiersz poleceń, aby uwzględnić proponowane opcje. Sprawdzanie statusu pakietów i usług zwraca wartości takie jak "leniwy", "aktywny" i "rozwiązany", a ja obecnie nie rozumiem, co to oznacza, więc wydaje się, że mam przed sobą jakieś badania. Z tego, co widzę, wszystko wygląda normalnie. – JasonK

+0

Możesz użyć polecenia diag, aby sprawdzić, czy zależności Twoich pakietów są poprawne. Jeśli tak, spróbuj uruchomić pakiety za pomocą polecenia start. – mbelow