GDB не может быть запущен - DDD для удаленного подчиненного отладчика

Я пытаюсь подключить DDD к GDB на удаленной машине. Я настроил rsh, чтобы не требовать пропуска для моей машины и имени пользователя.

DDD открывается с "RTX5:1234: не найден" и всплывающее окно с "GDB не может быть запущен". От вызова ddd --host rtx5:2159 --trace --no-exec-window /home/murray/beer-process

#  Running GDB (pid 2826, tty /dev/pts/1)...
#  Current language: C/C++
#  Searching "vsllib/ddd.vsl"...
#  Trying "/home/murray/.ddd/vsllib/ddd.vsl"
#  Trying "/usr/share/ddd-3.3.12/vsllib/ddd.vsl"
#  Searching "vsllib/ddd.vsl"..."/usr/share/ddd-3.3.12/vsllib/ddd.vsl".
<- "sh: line 0: exec: rtx5:2159: not found\n"
#  Running GDB (pid 2826, tty /dev/pts/1)...Exit 127.

PID GDB, запущенный DDD из журналов трассировки, состоит из 4 цифр. Тем не менее, все идентификаторы PID, которые я вижу из rtx(target), состоят из 8 цифр. Я не могу видеть GDB как процесс, но журнал трассировки указывает иначе. Документация устарела, и я вызываю ее неправильно? Как я могу проверить, правильно ли используется DDD?

Я обратился к предостережениям документов 2.4.1:

  • Двоичный файл пивного процесса находится в домашнем каталоге моего имени пользователя на цели.
  • Проверил путь к GDB в /usr/bin/gdb
  • RTX5 не имеет xterm, поэтому включите флаг --no-exec-window

заранее спасибо

1 ответ

TLDR: на хосте был брандмауэр, мешающий только ddh-соединению ddd. Мне также пришлось заменить "rtx5" на "rsh rtx5". Программа не найдет программу, которую я передаю, даже если она находится в домашнем каталоге удаленной цели. Однако я могу использовать ddd-gui, чтобы найти, загрузить и отладить его.

Я мог бы rsh к rtx5 без пароля, а затем вызвать GDB. Я не мог сделать "rsh rtx5 GDB" и запустить GDB. Это связано с rsh. Когда rsh вызывается без команды, он работает из 514. Если rsh вызывается с командой, он связывается и пытается перейти на другой номер порта. Это где мой брандмауэр блокировал его.
Wireshark показал мне от локального к целевому после rsh-соединения:

destination unreachable (host administratively protected) 

DDD по-прежнему имеет проблемы в первую очередь, что я не могу загрузить двоичный файл, который находится в моем удаленном домашнем каталоге. Это расширяет проблему, распространяется на присоединение к запущенным процессам на удаленном хосте. В обоих случаях я могу загрузить / подключиться через графический интерфейс после установления соединения.
Кроме того, я должен вызвать DDD с "rsh" перед именем удаленного хоста. Это кажется неправильным. Я обновлю, когда у меня будет больше.

Другие вопросы по тегам