使用GDB调试工具是通过在bash命令行中输入命令进行调试来实现的,虽然使用命令进行调试比较烦琐,没有比使用类似Visual C++6.0的可视化图形模式调试程序方便、易懂,但是一旦熟悉了这些调试的命令,就可以体会到GDB调试工具所具有的独特的强大功能。在学习GDB调试工具的基本功能与常用命令之前,先初步认识一下如何使用GDB调试工具进行调试。
例4.15 设计一个程序,要求输入两个整数,判断并输出其中的最小数。
步骤1:编辑源程序代码。
#vi 4-15.c
在4-15.c文件中输入以下程序代码:
步骤2:用GCC编译程序。
gcc 4-15.c -o 4-15 -g
步骤3:进入GDB调试环境
gdb 4-15
常用的GDB命令如表4.9所示。
表4.9 常用的GDB命令
注意:GDB是命令行调试环境,调试程序都在提示符“(gdb)”后输入相应的命令,GDB的命令很多,可以在提示符“(gdb)”后输入help进行查找。
步骤4:用GDB调试程序。
(1)查看源文件。
在GDB中输入“l”(list)就可以查看程序源代码,一次显示10行。
注意:GDB命令“l”(list)列出源代码的时候,要确保原来的源程序还在,如果读者以为这会像反汇编一样给出代码,那就错了,它其实只是列出源文件的内容。
(2)设置断点。(www.xing528.com)
在GDB中设置断点命令是“b”(break),后面跟行号或者函数名。
如:(gdb) b 10
特别提示:“list 行号”用来查看指定位置的代码,如“list 1”就是从第一行开始列出源代码。
(3)查看断点信息。
用命令“info b”(info break)查看断点信息。
注意:GDB在一个程序中可以设置多个断点,有多个断点中断时,“Num”处显示断点序号。
运行程序:输入“r”(run)开始运行程序。
注意:GDB默认从第一行开始运行,如果要从程序中指定行开始运行,只需输入“r行号”。
(4)查看变量值。
输入“p 变量名”设置断点,程序运行到断点处会自动暂停。
调试程序时,可能需要修改变量值,程序运行到断点处时,输入“set 变量=设定值”,例如给变量a2赋值11,输入“set a2=11”。
GDB在显示变量值时都会在对应值前加“$n”标记,它是当前变量值的引用标记,以后想再引用此变量,可以直接使用“$n”,提高了调试效率。
注意:查看变量值不能在程序结束后进行。
(5)单步运行。
在断点处输入“n”(next)或者“s”(step)。它们之间的区别在于:若有函数调用时,“s”会进入该函数,而“n”不会进入该函数。
(6)继续运行程序。
输入“c”(continue)命令恢复程序的正常运行,把剩余的程序执行完,并显示执行结果。
(7)退出GDB环境:输入“q”(quit)命令。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。