emacs gdb(rent)

Emacs 中启动 gdb 调试程序 -----  

2011-06-01 19:33:51|  分类:Emacs|字号 订阅

Emacs中使用gdb命令调试,然后用

gdb --annotate=0 myprog.exe 启动gdb进入gud-mode ,

不同的annotate 的值不代表不同的模式

annotate = 0是最基本的模式和在命令行使用gdb完全一样。

annotate = 1是单步调试模式,出现上下两个窗口,上面是gdb运行的buffer,下面是你代码的buffer,会在代码                 buffer中,同步指示当前运行的语句的位置。

annotate = 3是信息最完整的模式,会进入一个多窗口界面同时显示6个窗口分别是gdb-buffer, locals-buffer(局部                 变量),source-buffer,inferor I/Obuffer(正在调试程序的IO),stack-buffer,breakpoint-buffer.


无论上面的那种情况,都出现了一个现象:程序的输出不能显示,只有在程序退出的时候才显示出来。这样是非常不方便的。

 

GUD/GDB mode:

M-x gdb --annotate=3 test ;;进入gdb

如果没有进入graphical mode可以 M-x gdba 然后输入你要debug的file

C-x   : set breakpoint ;;可以直接点击旁边的fringe set/clear 断点

C-c C-l   : clear breakpoint

C-c C-s   : step(step one line code but stop in function)

C-c C-n   : next(step one line code but stepping across function)

C-c C-i   : stepi(Execute a single machine instruction)

C-c C-r   : continue(感觉还是直接按go按钮吧)

C-c C-d   : Delete the breakpoint(s) on the current source line

其他:

1. 如果更改了gdb的window 可以用: M-x gdb-restore-windows 恢复

在breakpoint buffer上:

2 Return : gdb-goto-breakpoint (即转到source对应的行)

3.D     : gdb-delete-breakpoint

4.Space   : Enable/disable the current breakpoint (`gdb-toggle-breakpoint')

5: 可以将鼠标放到一个variable上, 然后点击toolbar上的watch就可以watch a expression了

这是varibale显示在 speedbar中:

return: To expand or contract a complex data type

D     :   To delete a complex watch expression

space : To edit a variable with a simple data type

6: C-x C-a C-l : refresh a buffer

你可能感兴趣的:(emacs gdb(rent))