Как выполнить удаленную отладку с помощью Eclipse CDT без gdbserver? - PullRequest
14 голосов
/ 17 сентября 2008

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

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

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

Ответы [ 3 ]

11 голосов
/ 12 декабря 2008

наконец-то теперь я все равно запустил GDB. На символе ошибки на панели задач я выбрал «Настройки отладки» - «Отладка оборудования GDB».

В Main C / C ++ Applications я устанавливаю полный путь к общему ресурсу Samba исполняемого файла (X:\abin\vlmi9506). Я также установил связанную папку на X:\abin в проекте. Затем я изменил свой пакетный скрипт в GDB Setup. Это не прямой вызов gdb в сеансе plink, а сценарий unix-shell, который открывает gdb. Таким образом, у меня есть возможность установить некоторые unix-переменные среды для программы перед выполнением отладки. Звонок в моей партии:

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

В сценарии unix я запустил 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. Наш админ установил ее.

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

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

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

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

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

0 голосов
/ 27 ноября 2008

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

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

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

...