GDB基本命令

近几天在学Linux下C语言的编程。不可避免的就要遇到调试。Linux下调试用的最多的就是GDB了吧。本文记录下一些常见的命里及其解释,以便以后复习之用,同时也供有兴趣的同学一起探讨和学习。记录比较粗糙,以我自己能理解为准:

1.backtrace(或者bt): 查看各级函数的调用及参数。——用这个命令跟踪调试递归真的是太清楚了。

2:finish: 连续运行到当前函数返回为止,然后停下来等待命令。

3:frame(或f)  帧编号: 选择栈帧。至于栈帧可以的编号可以通过上面的bt来查看

4:info(或i)   locals: 查看当前栈帧局部变量的值

5:list(或l): 列出源代码,接着上次的位置往下列,每次列10行

6:list   行号: 列出从第几行开始的源代码

7:list   函数名: 列出某个函数的源代码

8:next(或n): 执行下一行语句

9:print(或p): 打印表达式的值,通过表达式可以修改变量的值或者调用函数

10:set var : 修改变量的值,后跟赋值语句

11:start: 开始执行程序,停在main函数第一行语句前等待命令

12:step(或s): 执行下一行语句,如果有函数调用则进入到函数中


二 有关断点:

13:break(或b)  行号: 在某一行设置断点

14:break  函数名: 在某个函数开头设置断点

15:break....if.....: 设置条件断点

16:continue(或c): 从当前位置开始连续运行程序

17:delete breakpoints  断点号: 删除断点,至于断点号 可以用 Info breakpoints 查看

18:display 变量名: 跟踪查看某个变量,每次停下来都显示它的值

19:undisplay 跟踪显示号: 取消跟踪显示

20: disable breakpoints 断点号: 禁用断点

21:enable 断点号: 启用断点

22: info(或i) breakpoints:  查看当前设置了哪些断点

23:run(或r): 从头开始连续运行程序



三:观察点

24:watch  : 设置观察点,当观察点位置的值发生变化时触发断点

25:info(或 i) watchpoints: 查看当前设置了哪些观察点

26:x(eg: x/7c  ):  从某个位置开始打印存储单元的内容,全部当成字节来看,而不区分哪个字节属于哪个变量

这个比较难以理解,一个非常清楚的例子:http://learn.akae.cn/media/ch10s03.html


posted @ 2012-10-22 18:55  JWMNEU  阅读(133)  评论(0编辑  收藏  举报