您的位置:首页 > 运维架构 > Linux

GDB简介与使用

2013-04-28 22:34 155 查看
 

说明:版权所有归作者,只供学习交流,若有其它用途请联系作者,转载请遵守IT人职业规范,请注明转载地址

 

 

一, GDB的简介

GDB是GNU Debugger的缩写。与make一样,同样来自于GNU项目。早期,GDB只运行在Linux或UNIX平台。目前有人将GDB移植到了Windows平台。这样在Windows操作系统下,软件开发人员同样可以使用出色的GDB调试工具。软件开发人员可以通过GDB调试工具启动程序、显示运行的相关信息或设置断点,还可以让程序在某个特定的位置或处在某个特定条件时停止下来,以便检查代码中的变量情况,并修改其中的错误。GDB不仅支持C/C++代码的调试,还可以使用GDB来调试Pascal或Fortran程序。GDB属于交叉工具,工作在命令模式。软件开发人员需要通过输入命令来实现对程序的调试,了解程序执行时的内部情况和出错情况。

 

二,GDB的使用和常用的一些命令

(1):编辑程序test.c

 

(2):使用命令gcc –g test.c –o test(必须使用-g选项,生成调试信息)

 

(3):使用gdb test,启动gdb进行调试

 

(4):使用l(list)命令,查看源文件

注意:使用l命令的时候,默认是从代码开头,一次显示10行的内容,并且再次使用l命令,会显示接下来的10行内容。如果想显示指定的行的内容,可以使用l(list)[起始行]
[结束行]的命令格式查看,例如,要显示程序3到9行的内容,使用命令l 3, 9。

 

(5):使用b(break)命令设置断点,只需要在命令“b”后加上对应的行号,就能在这行设置上断点,在程序运行起来后,一旦遇到断点就会停在断点所在行之前。

 

扩展使用:

break(b)文件名:行号 作用:在指定文件的指定行添加断点。

break(b)行号 if
条件  作用:当条件为真时,指定行号处断点生效,例如 b  5  if i=10当i=10时,第5行断点生效。

 

(6):使用命令info b,查看断点设置情况。

 

(7):delete断点编号删除断点。

 

(8):next(n)单步运行程序(不进入子函数)。

 

(9):step(s)单步运行程序(进入子程序)。

 

(10):continue(c) 继续运行程序

 

(11):run(r) 运行代码程序

 

(12):使用命令print(p),格式为 p [变量名],查看变量的值。

 

(13):使用命令finish,跳出一个函数(将这个函数运行完)。

 

(14):使用命令q(quit),退出gdb调试。

 

(15):kill(k)终止正在调试的程序。  

 

(16):whatis查看变量的类型。格式为,whatis [变量名]。

(17):tbreak设置临时断点,到达后被自动删除,用法同break。

 

(18):set(s) 设置变量的值。格式为,set
[变量名] = [值]。

 

(19):help(h)查看知道命令的用法。格式为,

h(help) [命令名称]。

 

(20):disable/enable除能或使能断点。格式为,

disable/enable [断点标号],如果不带编号则视为对所有断点都是相应的操作。断点编号通过命令info break查看。

 

(21):condition用来修改对应断点的条件。格式为,

Condition [断点号] <条件表达式>。

 

(22):watch对指定的变量进行监控。

格式为, watch变量名。

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息