如何使用emacs在linux中调试c / c ++源代码?

时间:2010-04-08 10:20:51

标签: c++ linux emacs gdb

我正在使用emacs和autotools,在linux上编写和编译c / c ++源代码 我在emacs中通过GUD使用gdb 我为方便起见定义:F7:编译,F10:gud-next,F11:gud-step,F5:gud-cont,F9:gud-tbreak,F8:gud-until,F4:gud-print。
我主要感兴趣的是从emacs调试linux上的c / c ++源代码,我想得到最多gdb可以给的。
不幸的是我只使用F4在光标下打印变量。

所以我的问题是你们如何调试源代码?
你用什么程序?
您主要使用哪些键绑定(功能)? 你需要调试器为你做什么?
如果你做了奇怪的东西,那没关系。我想知道一切,以提高我的速度 提前谢谢。
米哈伊

5 个答案:

答案 0 :(得分:3)

我使用M-x gdb...命令选择我需要的窗口,然后使用gdb提示符。

答案 1 :(得分:2)

一旦gdb正在进行中,我经常在源代码行上用C-x SPC设置断点,

答案 2 :(得分:2)

通过使用命令行而不是键绑定,您将充分利用gdb。我使用的最有用的命令:

  • bt - 打印回溯;有助于了解您所处的完整背景
  • sncont - 步骤,接下来,继续
  • run - 对于在同一会话中重新开始非常有用
  • watch - 设定观察点;对于值更改时的捕获非常有用
  • call - 调用函数
  • display - 每次程序停止时打印一个值。

答案 3 :(得分:1)

valgrind非常适合检测内存错误。大多数情况下,您会获得错误所在的确切位置。

gdb也不错,但是没有很好的界面,所以最好和ddd或者Eclipse这样的gui一起使用(是的,我正在使用带有Eclipse的gdb,它内置支持它)。

答案 4 :(得分:0)

我只使用调试器来获取分段错误的回溯。对于其他一切我使用printf调试。