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" перед именем удаленного хоста. Это кажется неправильным. Я обновлю, когда у меня будет больше.