【问题标题】:Can I make emacs correctly load source files when using gdb over ssh?在 ssh 上使用 gdb 时,我可以让 emacs 正确加载源文件吗?
【发布时间】:2011-11-05 21:52:21
【问题描述】:

我想使用 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 返回的远程路径感到困惑。有没有办法修复路径或至少手动将文件路径映射到调试路径?

【问题讨论】:

    标签: emacs ssh gdb remote-debugging


    【解决方案1】:

    这对我有用(Linux 和 GDB 7.0.1 下的 Emacs 23;我不明白为什么这在 OSX 上不起作用,甚至可能在 Windows 上也不起作用):

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

    然后start(gdb)提示打开/remote.example.com:a.c

    Tramp manual, under “Running a debugger on a remote host” 中有一些简短的提及。

    【讨论】:

    • 真正的复杂之处在于我正在调试一个嵌入式设备,我不想在我的 mac 上为这个设备编译一个兼容的 gdb,因此是双重远程。我相信这行不通,因为我的 x86 mac 的本机 gdb 将无法调试我的 powerpc-linux-uclibc 编译软件。
    • @jdizzle 糟糕,我完全错过了双重远程处理。 gdb 和 emacs 都非常通用,所以可能有一种方法可以使这项工作。您能否发布您如何启动 gdb 的成绩单?源文件存储在哪里? gdb 可以打开它们吗(例如list 命令是否有效)?
    【解决方案2】:

    x-forwarding emacs 有太多延迟

    所以不要。最简单的解决方案可能是 ssh 到工作主机,并在那里运行 emacs -nw。或者,

    ssh 工作主机 /path/to/my/gdb

    你不想ssh work-host /path/to/my/gdb --annotate=3 /path/to/exe 吗?

    您可以使用dir 命令告诉gdb 在哪里可以找到源,但我认为您最初的问题可能是gdb 根本没有告诉emacs 关于源(或者你没有告诉我们整个故事)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多