Можно ли использовать GDB для удаленной отладки по SSH? - PullRequest
3 голосов
/ 17 октября 2011

Можно ли отладить программу, запущенную на удаленной цели, к которой у меня есть доступ по ssh, используя локальные исходные файлы?

Скажем, у меня есть программа hello.c в каталоге /home/jla/hello на моей домашней машине.

И на удаленной машине я помещаю этот же файл в каталог / hello и компилирую его $ gcc -g -o hello hello.c, а затем удалите удаленный hello.c, но оставьте исполняемый файл.

Могу ли я затем запустить GDB локально, передать его по ssh на удаленную машину для запуска исполняемого файла, но использовать локальные источники в качестве ссылки?

Примечания:

  1. Досадно, удаленный компьютер очень урезан и не может быть изменен. У него есть GDB, но у него нет GDB-сервера

  2. Обратите внимание, что локальный и удаленный компьютер имеют разные архитектуры. В данном конкретном случае 64-битные и 32-битные Intel

  3. Что я действительно хочу сделать, так это запустить его под emacs / gud. Но это было бы отличным началом.

1 Ответ

3 голосов
/ 17 октября 2011

Архитектура удаленных и локальных машин не имеет большого значения. Важно то, как строятся hello, gdb и gdbserver.

Из вашего описания звучит, что hello построен (на удаленном компьютере) для x86_64-linux-gnu

Это означает, что вам нужен x86_64-linux-gnu gdbserver, а также 32-битная GDB, способная отлаживать двоичные файлы x86_64. Вы должны быть в состоянии собрать и то, и другое, скопировать gdbserver на удаленную машину и отлаживать "нормально".

...