【发布时间】:2012-04-12 04:04:50
【问题描述】:
假设我有一台构建机和测试机,而源代码仅在构建机上。 (Linux)
我有一个调试版本的 C/C++ 可执行文件,我想在测试机器上使用 gdb 运行它。
在测试机器上运行的调试器中,它仍在寻找不存在的实际源文件。
有没有办法让 g++ 在可执行文件本身中实际包含源代码以及其他调试信息,这样就不需要文件了?
【问题讨论】:
标签: c++ c linux debugging build
假设我有一台构建机和测试机,而源代码仅在构建机上。 (Linux)
我有一个调试版本的 C/C++ 可执行文件,我想在测试机器上使用 gdb 运行它。
在测试机器上运行的调试器中,它仍在寻找不存在的实际源文件。
有没有办法让 g++ 在可执行文件本身中实际包含源代码以及其他调试信息,这样就不需要文件了?
【问题讨论】:
标签: c++ c linux debugging build
无法将源代码编译成二进制文件以允许以这种方式进行 gdb 调试。
在这种情况下,最好的机制可能是使用gdbserver - 它允许您远程运行应用程序并在构建机器上对其进行调试。
如果您不能使用远程调试,那么另一种方法是在测试机器上挂载包含源代码的目录,然后使用set substitute-path 映射测试机器与构建机器的目录。
【讨论】:
没有,但好消息是没有必要。你应该设置你的source path。它应该接受网络路径。
【讨论】: