【问题标题】:Is it possible to use gdb to debug remotely over ssh?是否可以使用 gdb 通过 ssh 进行远程调试?
【发布时间】:2011-12-08 21:17:01
【问题描述】:

我可以使用本地源文件调试在我可以 ssh 访问的远程目标上运行的程序吗?

假设我有一个名为 hello.c 的程序,位于我家用计算机上的目录 /home/jla/hello 中。

在远程机器上,我把这个相同的文件放在目录 /hello 中,并用 $ gcc -g -o hello hello.c,然后删除远程hello.c,但保留可执行文件。

然后我可以在本地运行 gdb,将其通过 ssh 连接到远程机器以运行可执行文件,但使用本地源作为参考吗?

注意事项:

  1. 令人讨厌的是,远程机器非常精简,无法更改。它有 gdb,但没有 gdbserver

  2. 请注意,本地计算机和远程计算机具有不同的体系结构。在这种特殊情况下,64 位和 32 位英特尔

  3. 我真正想做的是在 emacs/gud 下运行它。但这将是一个很好的开始。

【问题讨论】:

  • gdb 和 gdb 只是一个用户模式程序。您不能将一个或另一个复制到远程到您自己的目录中吗?还是 /tmp?

标签: gdb remote-debugging


【解决方案1】:

远程和本地机器的架构无关紧要。重要的是如何构建 hello、gdb 和 gdbserver。

根据您的描述,hello 是为x86_64-linux-gnu 构建的(在远程机器上)

这意味着您需要x86_64-linux-gnugdbserver,还需要一个能够调试x86_64 二进制文件的32 位GDB。您应该能够同时构建两者,将gdbserver 复制到远程计算机,然后“正常”调试。

【讨论】:

    猜你喜欢
    • 2015-01-19
    • 1970-01-01
    • 1970-01-01
    • 2015-07-04
    • 2014-07-19
    • 2011-10-18
    • 1970-01-01
    • 2017-06-27
    • 1970-01-01
    相关资源
    最近更新 更多