我正在使用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在光标下打印变量。
所以我的问题是你们如何调试源代码?
你用什么程序?
您主要使用哪些键绑定(功能)?
你需要调试器为你做什么?
如果你做了奇怪的东西,那没关系。我想知道一切,以提高我的速度
提前谢谢。
米哈伊
答案 0 :(得分:3)
我使用M-x gdb...
命令选择我需要的窗口,然后使用gdb提示符。
答案 1 :(得分:2)
一旦gdb正在进行中,我经常在源代码行上用C-x SPC设置断点,
答案 2 :(得分:2)
通过使用命令行而不是键绑定,您将充分利用gdb
。我使用的最有用的命令:
bt
- 打印回溯;有助于了解您所处的完整背景s
,n
,cont
- 步骤,接下来,继续run
- 对于在同一会话中重新开始非常有用watch
- 设定观察点;对于值更改时的捕获非常有用call
- 调用函数display
- 每次程序停止时打印一个值。答案 3 :(得分:1)
valgrind非常适合检测内存错误。大多数情况下,您会获得错误所在的确切位置。
gdb也不错,但是没有很好的界面,所以最好和ddd或者Eclipse这样的gui一起使用(是的,我正在使用带有Eclipse的gdb,它内置支持它)。
答案 4 :(得分:0)
我只使用调试器来获取分段错误的回溯。对于其他一切我使用printf调试。