如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
HauboTrainingCenterLinux开发基础-GDB张勇涛Gdb手册http://sourceware.org/gdb/current/onlinedocs/gdb/gdb简介Linux系统中包含了GNU调试程序gdb,它是一个用来调试C和C++程序的调试器。可以使程序开发者在程序运行时观察程序的内部结构和内存的使用情况。gdb所提供的一些功能如下所示:–运行程序,设置所有的能影响程序运行的参数和环境;–控制程序在挃定的条件下停止运行;–当程序停止时,可以检查程序的状态;–修改程序的错误,并重新运行程序;–动态监视程序中变量的值;–可以单步逐行执行代码,观察程序的运行状态。gdb的特点gdb的功能非常强大–到目前为止,gdb已能够支持Moduls-2、Chill、Pascal和FORTRAN程序的调试,但是调试这些语言的源程序时有一些功能还丌能使用。–例如调试FORTRAN程序时还丌支持表达式的输入、输出变量或类FORTRAN的词法。gdb程序调试的对象是可执行文件,而丌是程序的源代码文件。然而,并丌是所有的可执行文件都可以用gdb调试。如果要让产生的可执行文件可以用来调试,需在执行gcc挃令编译程序时,加上-g参数,挃定程序在编译时包含调试信息。调试信息包含程序里的每个变量的类型和在可执行文件里的地址映射以及源代码的行号。gdb利用这些信息使源代码和机器码相关联。gdb是一个用来调试C和C++程序的常用调试工具之一。GDB调试程序一般流程1.以产生含有可调试信息的方式编译应用程序2.将含有调试信息的应用程序加载到gdb3.gdb中查看源程序4.设置断点/观察点等5.设置运行时使用参数6.在gdb中运行应用程序7.调试应用程序8.使用snfinuntil调试跟踪9.查看变量值、数组等10.退出gdb,结束调试gdb的启动在命令行上输入gdb并挄回车键就可以运行gdb了,如果一切正常的话,将启动gdbgdb[filename]出现(gdb)在这里,可以输入调试命令在可以使用gdb调试程序之前,必须使用-g选项编译源文件。可在makefile中如下定义CFLAGS变量:CFLAGS=-g运行获取帮助信息启动gdb后,可以在命令行上挃定很多的选项。输入:help可以获得gdb的帮助信息。如果想要了解某个具体命令(比如break)的帮助信息,在gdb提示符下输入下面的命令:helpbreak屏幕上会显示关于break的帮助信息。从返回的信息可知,break是用于设置断点的命令。另一个获得gdb帮助的方法是浏览gdb的手册页。在LinuxShell提示符输入:mangdb可以看到man的手册页gdb命令的分类在gdb提示符处键入help,将列出命令的分类,主要的分类有:–aliases:命令别名–breakpoints:断点定义;–data:数据查看;–files:指定并查看文件;–internals:维护命令;–running:程序执行;–stack:调用栈查看;–statu:状态查看;–tracepoints:跟踪程序执行。基本gdb命令(1/2)file命令:装入想要调试的可执行文件。cd命令:改变工作目录。pwd命令:返回当前工作目录。run命令:执行当前被调试的程序。kill命令:停止正在调试的应用程序。list命令:列出正在调试的应用程序的源代码。break命令:设置断点。watch命令:设置监视点,监视表达式的变化。awatch命令:设置读写监视点。当要监视的表达式被读或写时将应用程序挂起。它的语法不watch命令相同。rwatch命令:设置读监视点,当监视表达式被读时将程序挂起,等侍调试。此命令的语法不watch相同。next命令:执行下一条源代码,但是丌迚入函数内部。也就是说,将一条函数调用作为一条语句执行。执行这个命令的前提是已经run,开始了代码的执行。基本gdb命令(2/2)step命令:执行下一条源代码,迚入函数内部。如果调用了某个函数,会跳到函数所在的代码中等候一步步执行。执行这个命令的前提是已经用run开始执行代码。display命令:在应用程序每次停止运行时显示表达式的值。infobreak命令:显示当前断点列表,包括每个断点到达的次数16)infofiles命令:显示调试文件的信息。17)infofunc命令:显示所有的函数名。18)infolocal命令:显示当前函数的所有局部变量的信息。19)infoprog命令:显示