Могу ли я заставить emacs правильно загружать исходные файлы при использовании gdb поверх ssh? - PullRequest
4 голосов
/ 06 ноября 2011

Я хочу использовать emacs для удаленного запуска GDB через ssh, а затем с этого удаленного GDB нацелить на удаленный сервер отладки.Я действительно хочу запускать GDB из Emacs, но в x-forwarding emacs слишком большая задержка, поэтому я запускаю aquamacs локально на своем Mac.Я запускаю Mx gdb с командной строкой ssh work-host /path/to/my/gdb, а затем из командной строки gdb могу указать цель удаленной отладки.

Все это прекрасно работает, но источники не загружаются, когда я пытаюсь просмотреть файлы.Я предполагаю, что emacs запутался в удаленных путях, которые возвращает ssh gdb.Есть ли способ исправить пути или, по крайней мере, вручную сопоставить пути файлов с путями отладки?

Ответы [ 2 ]

1 голос
/ 06 ноября 2011

Emacs для пересылки x имеет слишком большую задержку

Так что не надо. Простейшим решением может быть ssh на рабочий хост и запустить там emacs -nw. В качестве альтернативы

ssh work-host / path / to / my / gdb

Разве вы не хотите ssh work-host /path/to/my/gdb --annotate=3 /path/to/exe?

Вы можете указать gdb, где искать источники, с помощью команды dir, но я думаю, что ваша первоначальная проблема может заключаться в том, что gdb вообще не сообщает emacs об источнике (иначе вы не сказали нам вся история).

1 голос
/ 06 ноября 2011

Это сработало для меня (Emacs 23 под Linux и GDB 7.0.1; я не понимаю, почему это не сработает в OSX и, возможно, даже в Windows с небольшим подталкиванием):

M-x gdb --annotate=3 /remote.example.com:a.out

Затем start в открывшемся приглашении (gdb) /remote.example.com:a.c.

В руководстве Tramp есть краткое упоминание об этом в разделе «Запуск отладчика на удаленном хосте» .

...