有没有办法将C ++源代码编译成二进制文件,以便gdb可以看到它?

时间:2012-03-28 14:28:30

标签: c++ c linux debugging build

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

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

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

有没有办法让g ++实际包含可执行文件中的源代码以及其他调试信息,因此不需要文件?

2 个答案:

答案 0 :(得分:4)

没有办法将源编译成二进制文件以允许以这种方式进行gdb调试。

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

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

答案 1 :(得分:2)

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