2008-09-17 26 views
14

Używamy Eclipse CDT 5 C++ IDE w systemie Windows do opracowania aplikacji C++ na zdalnym hoście AIX.Jak wykonać zdalne debugowanie za pomocą Eclipse CDT bez gdbserver?

Eclipse CDT ma możliwość zdalnego debugowania za pomocą gdbserver. Niestety gdbserver nie jest obsługiwany w systemie AIX.

Czy ktoś zna sposób debugowania zdalnie za pomocą Eclipse CDT bez gdbserver? Być może przy użyciu połączenia powłoki SSH z gdb?

+0

Z 'gdbserver': https://stackoverflow.com/questions/15685104/remote-debugging-c-applications-with-eclipse-cdt-rse-rdt/45658783#45658783 –

Odpowiedz

1

Normalnie nie strzelałbym w ciemność na pytanie, na które nie mogę przetestować odpowiedzi, ale ponieważ ten dzień siedział przez jeden dzień, zrobię to. Wydaje się, patrząc na:

http://wiki.eclipse.org/TM_and_RSE_FAQ#How_can_I_do_Remote_Debugging_with_CDT.3F

... że nawet jeśli się nie zmieniło od CDT że strona wiki została wykonana, należy jeszcze być w stanie zmienić polecenie debug do:

ssh remotehost gdb

zamiast używać TM, która używa gdbserver. Prawdopodobnie będzie to nieco wolniejsze niż zdalne debugowanie TM, ponieważ faktycznie używa lokalnego gdb, ale z drugiej strony nie będziesz musiał montować kodu źródłowego NFS lub SMB, aby był dostępny dla lokalnego debuggera (i jeśli jesteś w sieci LAN, prawdopodobnie nie będzie to miało znaczenia).

Jest też realizacja TCF odniesienia dla systemów Linux, który może lub nie może mieć żadnych szczęścia rekompilacji dla AIX, ale pozwala na zdalne debugowanie jeśli gdbserver jest inaczej niedostępne:

http://wiki.eclipse.org/DSDP/TM/TCF_FAQ

0

próbował również zdalnie debugować aix-appl w Windows eclipse-cdt-gdb. Mam zablokowane na końcu problemy z ścieżką unix/windows. Może mój wynik może ci trochę pomóc - może już to robisz. Interesuje mnie twój komentarz. zapytał na portalu informacyjnym Eclipse - po odpowiedzi Martina Oberhubera (dzięki ponownie) wypróbował dsp dd (również zablokowany z problemem ścieżki) i ustawił żądanie w eclipse bugzilla.

tutaj link do wiadomości: http://www.eclipse.org/newsportal/article.php?id=406&group=eclipse.dsdp.tm Oto moja bugzilla: https://bugs.eclipse.org/bugs/show_bug.cgi?id=252758

W tej chwili nadal debugować lokalnie z xldb ale staram ddd-gdb w tej chwili. Działa co najmniej lokalnie gdb.

11

W końcu mam teraz uruchomione gdb remotly. W Bug-symbol na pasku zadań wybrałem Debug Configurations - GDB Hardware Debugging.

W głównych aplikacjach C/C++ Ustawiam pełną ścieżkę dla udziału Samby w pliku wykonywalnym (X:\abin\vlmi9506). Ustawiłem też w projekcie powiązany folder na X:\abin. Następnie zmodyfikowałem skrypt wsadowy w GDB Setup. To nie jest bezpośrednie wywoływanie gdb w sesji "plink", ale skrypt powłoki unix, który otwiera gdb. W ten sposób mam możliwość ustawienia pewnych zmiennych środowiskowych unix dla programu przed wykonaniem debugowania. Wywołanie w moim partii:

plink.exe prevoax1 -l suttera -pw XXXXX -i /proj/user/dev/suttera/vl/9506/test/vlmi9506ddd.run 20155 dev o m 

W skrypcie Uniksa zacząłem gdb z params wiersza poleceń z zaćmienia, które znalazłem w moich dawnych tryals.Wywołanie polecenia powłoki wygląda następująco:

gdb -nw -i mi -cd=$LVarPathExec $LVarPathExec/vlmi9506 

Następnie IBM po prostu daje gdb 6.0 dla AIX. Znalazłem wersję 6.8 w sieci pod numerem http://www.perzl.org/aix/index.php?n=Main.Gdb. Nasz administrator go zainstalował.

Mogę teraz przejść przez program i obejrzeć zmienne. Mogę nawet pisać polecenia gdb bezpośrednio w widoku konsoli. yabadabadooooooo

Nadzieję, że pomaga również innym. Nie mogę powiedzieć, co tak naprawdę było zwycięzcą. Ale każda odpowiedź daje więcej nowych pytań. Teraz mam 3 z nich.

  1. Po uruchomieniu konfiguracji debugowania, należy kliknąć przycisk Uruchom ponownie na pasku narzędzi, aby przejść do głównej procedury. Czy możliwe jest bezpośrednie przejście do trybu głównego bez ponownego uruchamiania?
  2. W systemie AIX nasze programy są wstępnie wstępnie przygotowane do wbudowanego sql. Wstępnie przetworzone źródło c znajduje się w innym katalogu. Kiedy kliknąłem na linię, aby ustawić punkt przerwania, otrzymuję ostrzeżenie "nierozwiązany punkt przerwania" iw konsoli gdb widzę, że przerwa jest ustawiona na wstępnie przetworzone źródło, które jest błędne. Czy jest możliwe ustawienie punktów przerwania na właściwym źródle?
  3. Używamy CICS w systemie AIX. Dzięki poleceniu xldb-Debugger i CDCN w CICS zarządzamy, że debugowanie jest uruchamiane, kiedy przychodzimy do naszych programów. Czy możliwe jest zdalne (również w gruncie) zdarzenie gdb-eclipse?
+2

+1 za posiadanie tego gówna działa i działa – Eric