Как удаленная отладка с Eclipse CDT без gdbserver?

Мы используем Eclipse CDT 5 С++ IDE в Windows для разработки приложения на С++ на удаленном хосте AIX.

Eclipse CDT имеет возможность выполнять удаленную отладку с помощью gdbserver. К сожалению, gdbserver не поддерживается в AIX.

Кто-нибудь знаком с возможностью отладки удаленно с помощью Eclipse CDT без gdbserver? Возможно, используя соединение оболочки SSH с gdb?

Ответы

Ответ 1

Наконец-то я получил gdb в удаленном режиме в любом случае. В Bug-символе на панели задач я взял Debug Configurations - GDB Hardware Debugging.

В приложениях Main C/С++ я устанавливаю полный путь на долю Samba исполняемого файла (X:\abin\vlmi9506). Я также установил связанную папку на X:\abin в проекте. Затем я изменил свой пакетный script в GDB Setup. Он не напрямую вызывает gdb в сеансе plink, а unix-shell-script, который открывает gdb. При этом у меня есть возможность установить некоторые переменные среды unix для программы, прежде чем делать отладку. Вызов в моей партии:

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

В unix script я начал gdb с параметрами командной строки из eclipse, которые я нашел в своих предыдущих попытках. Вызов команды оболочки выглядит следующим образом:

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

Затем IBM просто дает gdb 6.0 для AIX. Я нашел версию 6.8 в сети на http://www.perzl.org/aix/index.php?n=Main.Gdb. Наш Admin установил его.

Теперь я могу перейти через программу и посмотреть переменные. Я даже могу написать gdb-команды непосредственно в консольном представлении. yabadabadooooooo

Надеюсь, что это поможет и другим. Не могу сказать, что было действительно победителем. Но каждый ответ дает больше новых вопросов. Теперь у меня их 3.

  • Когда я запускаю конфигурацию отладки, мне нужно щелкнуть перезапуск на панели инструментов, чтобы войти в основную процедуру. Можно ли перейти непосредственно в основное меню без перезапуска?
  • В AIX наши программы сначала предварительно обрабатываются для встроенных sql. Предварительно обработанный c-источник помещается в другой каталог. Когда я нажимаю на строку, чтобы установить точку останова, я получаю предупреждение "неразрешенная точка останова", а в gdb-консоли я вижу, что перерыв установлен на предварительно обработанный источник, который является неправильным. Можно ли установить точки останова на правильном источнике?
  • Мы используем CICS в AIX. С помощью xldb-Debugger и CDCN-команды CICS мы управляем этой отладкой, когда мы заходим в наши программы. Возможно ли получить это дистанционно (в plink) с помощью gdb-eclipse?

Ответ 2

Я обычно не делал бы выстрела в темноте на вопрос, на который я не могу проверить свой ответ, но так как он сидит целый день, я дам ему шанс. Кажется, глядя на:

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

... что даже если CDT изменился с момента создания этой вики-страницы, вы все равно сможете изменить команду отладки на:

ssh remotehost gdb

вместо использования TM, который использует gdbserver. Это, вероятно, будет немного медленнее, чем удаленная отладка TM, поскольку на самом деле используется локальный gdb, но, с другой стороны, таким образом вам не понадобится монтировать исходный код NFS или SMB, чтобы сделать его доступным для локального отладчика (и если вы находитесь в локальной сети, это, вероятно, не будет иметь никакого значения).

Также существует ссылка на реализацию TCF для linux, которую вы можете или не можете перекомпилировать для AIX, но она позволяет удаленно отлаживать, если gdbserver в противном случае недоступен:

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

Ответ 3

попытался удаленно отладить aix-appl с окнами eclipse-cdt-gdb. В конце были заблокированы проблемы с файлами unix/windows. Может быть, мой результат может помочь вам немного дальше - возможно, у вас уже есть работа. Меня интересует ваш комментарий. спросил на новостном портале eclipse - после ответа martin oberhuber (еще раз спасибо) попробовал dsp dd (также заблокирован с проблемой пути) и задал запрос в eclipse bugzilla.

здесь ссылка на новости: http://www.eclipse.org/newsportal/article.php?id=406&group=eclipse.dsdp.tm Вот моя bugzilla: https://bugs.eclipse.org/bugs/show_bug.cgi?id=252758

В настоящий момент мы все еще отлаживаем localy с xldb, но сейчас я пытаюсь ddd-gdb. По крайней мере локально работает gdb.