写下linux下用emacs调用dgb调试的方法
emacs中使用gdb
说明C等价于ctrl M等价于alt
1,编写 .c函数 test.c
2,gcc一把 看看对不对 带上-g
gcc -g -o test .debug test.c
如果要用gdb调试器,必须使用g选项。
3,#emacs //打开emacs(也可以先打开源码进行对照)
(打开源码 #emacs test.c 然后水平切开窗口 C--x 3)
M + x gdb 回车 //打开gdb
在gdb中输入file test.debug //打开文件进行调试
4,list //列出源码 l 5 则光标显示在第五行
5,b line //在line行设个断点 delete +点号 可以删除断点 info b 可以查看断点信息
6,run //执行 到断点处会停下来 p+变量 可以查看变量
7 step //单步 continue //继续
8 quit //退出
相关gdb指令
backtrace(或bt)查看各级函数调用及参数
finish 执行到当前函数返回,然后停下来等待命令
frame(或f) 帧编号选择栈帧 info(或i)
locals 查看当前栈帧局部变量的值
list(或l)列出源代码,接着上次的位置往下列,每次列10行
list 行号列出从第几行开始的源代码 list 函数名列出某个函数的源代码
next(或n)执行下一行语句
print(或p)打印表达式的值,通过表达式可以修改变量的值或者调用函数
set var 修改变量的值
start 开始执行程序,停在main函数第一行语句前面等待命令
run(或r)从头开始连续而非单步执行程序
step(或s)执行下一行语句,如果有函数调用则进入到函数
continue(或c)从当前位置开始连续执行程序直到遇到断点
break(或b) 行号在某一行设置断点
break 函数名在某个函数开头设置断点
break...if... 设置条件断点
delete breakpoints 删除断点
display 变量名跟踪查看一个变量,每次停下来都显示它的值
disable breakpoints 禁用断点
enable breakpoints 启用断点 info(或i)
breakpoints 查看当前设置了哪些断点
undisplay 取消对先前设置的那些变量的跟踪
jump
在断点之间跳转