欢迎来到天天文库
浏览记录
ID:36321271
大小:1.37 MB
页数:16页
时间:2019-05-09
《《linuxc从入门到精通》.明日科技.第06章.gdb调试工具》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、初识gdb调试器本讲大纲:gdb调试器概述初识gdb调试简单程序gdb调试器概述无论是刚刚接触编程的初学者还是已经在编程工作上有着丰富经验的工程师,在编写一个程序时,往往会出现意想不到的错误,实现同一功能的程序算法可能是一样的,但是出现错误的原因却可能是千奇百怪的。因此在完成一个项目后,必不可缺的是对这个项目程序的调试与多次测试。gdb调试器就是在Linux平台上最常用的调试工具。通过设置断点、单步跟踪、显示数据等功能可以快速查找到故障点,对程序进行改正完善。6.1.1gdb调试器概述在Linux平台下,G
2、NU发布了一款功能强大的调试工具,称为gdb(GNUDebugger),该软件最早是由RichardStallman编写的,gdb是一个用来调试C和C++程序的调试工具。其工作在命令模式下,需要通过输入命令来实现对应用程序的调试。通过此调试工具可以在程序运行时观察程序的内部结构和内存的使用情况。关于gdb调试器,它是在终端,通过输入命令,进入调试界面的,在调试的过程中,也是通过命令来进行调试的。在终端中输入gdb命令,就可以进入到gdb调试的界面,gdb调试器主要实现三方面的功能,分别如下:(1)启动被调试
3、的程序。(2)使被调试的程序在指定位置停住。(3)当程序被停住时,可以检查程序此时的状态,如变量的值。为了使调试器实现上述三方面功能,可以使用如下五条命令进行操作。(1)启动程序:启动程序时,可以设置程序的运行环境,使程序运行在gdb调试环境下。(2)设置断点:在运行程序时,程序会在断点处停住,方便用户查看程序此时的运行情况,断点可以是行数,可以是函数名称或者条件表达式。(3)查看信息:可以查看和可执行程序相关的各种信息。(4)分布运行:可以使代码一句一句的执行,方便及时查看程序的信息。(5)改变环境:可以
4、在程序运行时改变程序的运行环境和程序变量。初识gdb调试简单程序使用gdb调试工具是通过在bash命令行中输入命令进行调试,虽然使用命令进行调试比较繁琐,没有使用类似visualc++6.0的可视化图形模式调试程序方便、易懂,但是一旦熟悉了这些调试的命令,可以体会到gdb调试工具所具有的独特的强大的功能。在学习gdb调试工具的基本功能与常用命令之前,先初步认识一下如何使用gdb调试工具进行调试。例6.1在vim编辑器中编写一个简单的C语言程序,使用冒泡排序算法实现一个数组的排序,使用gdb调试工具对此程序进
5、行调试。标题gdb调试器的基本功能与常用命令本讲大纲:启动调试程序功能及其命令使用断点功能及其命令检查数据的功能及其命令使用观察窗口功能及其命令检查栈信息功能及其命令检查源代码功能及其命令改变程序的运行功能及其命令启动调试程序功能及其命令通过前一节介绍的简单的调试过程,已经了解了gdb调试工具的主要功能和几个简单的常用命令。gdb调试工具之所以可以成为Linux平台上应用最广泛的调试工具,是因为其具有强大的调试功能,接下来了解一下gdb调试工具的基本功能和相应的命令。以如下代码实例作为调试的一个程序,从应用
6、中了解实现这些功能的命令是如何操作的。例6.2此例主要实现了输入年月日,判断这一天是一年中的第几天,该示例代码保存在year.c文件中,6.2.1启动调试程序功能及其命令使用gdb调试程序,必须要让gdb可以获得程序的信息,因此需要在编译程序的时候加入参数g,编译命令如:gcc–g–o可执行文件名源程序文件名生成一个带有调试信息的可执行文件,由此,可以使用如下命令语句加载可执行文件程序进入到gdb调试工具中。gdb可执行文件名进入gdb调试工具的另一种方法是,可以先输入gdb命令(在命令行中输入gdb,回车
7、),然后通过文件命令操作加载可执行文件。如file可执行文件名进入gdb调试工具后,可以使用gdb命令run运行程序,在命令行中输入run,回车就可以运行程序。当调试结束,可以输入命令quit,回车退出gdb调试工具,也可以使用ctrl+d快捷键退出gdb调试工具。上述启动程序命令采用了在gdb命令中加载可执行文件的方式进入gdb调试工具中,实现过程使用断点功能及其命令设置断点是为了在该点处中断程序的运行,方便观察程序状态,并且可以单步跟踪后续代码。(1)在gdb调试工具中使用break命令可以设置断点,如
8、//运行到某行停止运行break行号//程序进入指定功能函数时停止运行break函数名称//符合if语句条件时,运行到指定位置停止运行break行号/函数名称if条件使用break命令在程序的第5行和第23行分别设置了断点检查数据的功能及其命令使用观察窗口功能及其命令在使用观察窗口时,需要设置监视点,用于监视某个表达式或变量,当表达式或变量的值被读或被写时让程序断下。在gdb调试工具中,关于设置监测点有如下几种命
此文档下载收益归作者所有