Linux平台上使用gdb调试程序


关键词

Linux平台上使用gdb调试程序

摘要

gdb是Linux/UNIX平台下的一个程序调试工具,它是由GNU开源组织发布的。在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。

我们使用gdb时,主要用它来完成以下几个方面的工作。
1、启动程序,在启动时,可以按照你想要的环境来运行程序。
2、设置断点,什么是断点,这里不解释。断点可以是行数,程序名称或条件表达式。
3、查看信息,在运行到断点处时,可以查看程序的运行信息,显示变量的当前值。
4、分步运行:让程序一步一步的运行,便于观察程序运行的路径、变量值等。
5、改变环境:可以在程序运行时修改运行环境和程序变量。

一、加入调试信息

在使用gdb之前,必须在编程程序时加入供gdb使用的调试信息。且看下面例子:

gdb是Linux/UNIX平台下的一个程序调试工具,它是由GNU开源组织发布的。在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。

我们使用gdb时,主要用它来完成以下几个方面的工作。
1、启动程序,在启动时,可以按照你想要的环境来运行程序。
2、设置断点,什么是断点,这里不解释。断点可以是行数,程序名称或条件表达式。
3、查看信息,在运行到断点处时,可以查看程序的运行信息,显示变量的当前值。
4、分步运行:让程序一步一步的运行,便于观察程序运行的路径、变量值等。
5、改变环境:可以在程序运行时修改运行环境和程序变量。

一、加入调试信息

在使用gdb之前,必须在编程程序时加入供gdb使用的调试信息。且看下面例子:
gcc -g -o test.debug test.c
这个编译语句的作用是,对test.c做编译,生成一个test.debug文件,-g表示加入调试信息。加了-g后生成的目标文件将比不加的要大很多。如果在测试的时候,一般带上-g参数,以便可以调试;正常情况下发布一个软件,不加-g参数。


二、启动gdb
直接在终端输入gdb

三、加载需要调试的程序
这里我们把test.debug加入进来,命令如下:
在gdb的上下文环境中,输入:file test.debug

四、查看代码
其实加了-g参数编译时,编译的结果文件中就包含了源代码和其他调试信息。我们可以使用list命令来显示代码,如:
list 1
表示显示从第一行开始的10行代码。按Enter,显示接下去的10行。以此类推,直接显示完。

五、添加断点
在第x行加入断点,命令:
break x

六、查看断点
info breakpoint
delete可以删除当前停止处的断点。

七、运行程序
run
遇到断点后停止下来,输入next或step后会继续下一行;step进函数,next不进函数;输入continue会到下一个断点;

八、变量查看
print 变量名
当程序遇到断点停止下来后,即可通过print命令来查看变量当前值。


 

要饭二维码

洪哥写文章很苦逼,如果本文对您略有帮助,可以扫描下方二维码支持洪哥!金额随意,先行谢过!大家的支持是我前进的动力!

文章的版权

本文属于“洪哥笔记”原创文章,转载请注明来源地址:Linux平台上使用gdb调试程序:http://www.splaybow.com/post/linux-gdb.html

如果您在服务器运维、网络管理、网站或系统开发过程有需要提供收费服务,请加QQ:115085382!十年运维经验,帮您省钱、让您放心!
亲,如果有需要,先存起来,方便以后再看啊!加入收藏夹的话,按Ctrl+D

« gcc编译器 解决VMware中Linux无法使用Ctrl+Alt+Fn在不同TTY之前切换 »

相关文章:

在Linux上添加字体  (2018/9/1 11:53:09)

购物网站支付宝付款后跳转回来报错  (2015/3/18 15:52:24)

centos下安装nmap、sqlmap、metasploit  (2014/8/22 9:18:40)

Linux上极具杀伤力的破坏指令  (2014/8/18 8:53:22)

三步骤测试Linux主机是否连通  (2014/5/20 9:33:18)

Linux查看路由信息  (2014/5/8 15:01:06)

RHEL6.4搭建FTP服务器  (2014/4/29 10:16:55)

linux系统下设置网站404错误页  (2014/4/21 12:45:26)

OpenSSL安全公告  (2014/4/15 9:01:51)

系统管理员命令:sudo  (2014/4/14 11:06:49)