使用gdb进行调试 - 最佳实践

Nav*_*K N 6 c++ gdb makefile

我是GDB的初学者,我让它正常工作.但是,我想知道如何在大型项目中使用它.我有一个使用makefile和g ++完成构建的项目.为了使GDB正常工作,我们需要使用右侧的调试符号进行编译(g ++ -g文件)?

  1. 我是否需要在makefile中创建一个类似"debug"的新目标,以便我可以像make debug一样进行调试构建.这是最好的做法吗?
  2. 假设,我只需要调试foo.cpp,除了构建包括main在内的整个程序之外,是否可以仅生成调试符号?

有什么想法吗?

Mik*_*age 2

  1. 不需要,尽管您可能希望考虑始终使用 -g 进行构建(有时,您甚至可能需要尝试和调试优化的(-O1、-O2 等)代码;为什么不保留 -g 呢?对于发布版,您始终可以只需在二进制文件上运行 strip 即可。

  2. 是的。使用 -g 构建该文件。