首页 理论教育 Linux系统编程:使用GDB调试

Linux系统编程:使用GDB调试

时间:2023-11-16 理论教育 版权反馈
【摘要】:在学习GDB调试工具的基本功能与常用命令之前,先初步认识一下如何使用GDB调试工具进行调试。#vi 4-15.c在4-15.c文件中输入以下程序代码:步骤2:用GCC编译程序。表4.9常用的GDB命令注意:GDB是命令行调试环境,调试程序都在提示符“”后输入相应的命令,GDB的命令很多,可以在提示符“”后输入help进行查找。步骤4:用GDB调试程序。

Linux系统编程:使用GDB调试

使用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)命令。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈