【问题标题】:Is there a way to get C++ source compiled into a binary so gdb can see it?有没有办法将 C++ 源代码编译成二进制文件,以便 gdb 可以看到它?
【发布时间】:2012-04-12 04:04:50
【问题描述】:

假设我有一台构建机和测试机,而源代码仅在构建机上。 (Linux)

我有一个调试版本的 C/C++ 可执行文件,我想在测试机器上使用 gdb 运行它。

在测试机器上运行的调试器中,它仍在寻找不存在的实际源文件。

有没有办法让 g++ 在可执行文件本身中实际包含源代码以及其他调试信息,这样就不需要文件了?

【问题讨论】:

    标签: c++ c linux debugging build


    【解决方案1】:

    无法将源代码编译成二进制文件以允许以这种方式进行 gdb 调试。

    在这种情况下,最好的机制可能是使用gdbserver - 它允许您远程运行应用程序并在构建机器上对其进行调试。

    如果您不能使用远程调试,那么另一种方法是在测试机器上挂载包含源代码的目录,然后使用set substitute-path 映射测试机器与构建机器的目录。

    【讨论】:

      【解决方案2】:

      没有,但好消息是没有必要。你应该设置你的source path。它应该接受网络路径。

      【讨论】:

        猜你喜欢
        • 2018-08-25
        • 2021-07-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-18
        • 1970-01-01
        • 1970-01-01
        • 2017-02-16
        相关资源
        最近更新 更多