我想使用emacs通过ssh远程运行gdb,然后从远程gdb运行远程调试服务器。我真的想从emacs中运行gdb,但x-forwarding emacs有太多的延迟,所以我在我的mac上本地运行aquamacs。我使用命令行ssh work-host /path/to/my/gdb
运行M-x gdb,然后从gdb提示符中我可以定位远程调试目标。
这一切都很好用,但是当我尝试逐步浏览文件时没有加载任何来源。我假设emacs在ssh gdb返回的远程路径上感到困惑。有没有办法修复路径或至少手动将文件路径映射到调试路径?
答案 0 :(得分:1)
这对我有用(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
打开了{{1}}。
Tramp manual, under “Running a debugger on a remote host”中有一些简短的提及。
答案 1 :(得分:1)
x-forwarding emacs有太多的延迟
所以不要。最简单的解决方案可能是ssh到work-host,并在那里运行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
有关来源的信息来源所有(或者你没有告诉我们整个故事)。