前言:上一篇文章中我们讲解了Linux下的gcc与g++的使用,今天我们将进一步的学习gdb与makefile来帮我们更好的理解与使用基础开发工具。
💖 博主CSDN主页:卫卫卫的个人主页 💞
👉 专栏分类:Linux的深度刨析 👈
💯代码仓库:卫卫周大胖的学习日记💫
💪关注博主和博主一起学习!一起努力!
Linux下基础开发工具
gdb调试方法
程序的发布方式有两种,debug模式和release模式
Linux gcc/g++出来的二进制程序,默认是release模式
要使用gdb调试,必须在源代码生成二进制程序的时候, 加上 -g 选项
GDB是一个用于调试程序的强大工具,可以运行在Linux操作系统下。在Linux中,你可以通过以下步骤来安装和使用GDB:
- 打开终端。
- 输入以下命令以安装GDB:
sudo apt-get install gdb
(请注意,这需要管理员权限)。 - 安装完成后,你可以通过输入
gdb
命令来启动GDB调试器。 - 接下来,你需要指定要调试的可执行文件。例如,如果你要调试一个名为
program
的程序,可以使用命令gdb program
。 - GDB将会启动并等待你输入调试命令。你可以使用命令
run
来运行程序,然后使用其他命令来设置断点、查看变量的值等等。
以下是一些常用的GDB命令:
-
list
或l
:查看源代码 -
break
或b
:设置断点。 -
info breakpoints
:显示断点信息 -
run
或r
:运行程序。 -
continue
或c
:继续执行程序。 -
next
或n
:执行下一行代码。 -
step
或s
:单步执行程序,进入函数调用。 -
print
或p
:打印变量的值。 -
backtrace
或bt
:显示函数调用的堆栈跟踪。 -
quit
或q
:退出GDB调试器。 -
display 表达式
:在单步运行时将非常有用,使用display命令设置一个表达式后,它将在每次单步进行指令后,紧接着输出被设置的表达式及值。如:display n
-
watch 表达式
:设置一个监视点,一旦被监视的“表达式”的值改变,gdb将强行终止正在被调试的程序。如:watch n(查看变量n)
-
whatis
:查询变量或函数 -
info function
: 查询函数 -
扩展
info locals
: 显示当前堆栈页的所有变量
这只是GDB的一些基本用法,GDB提供了很多功能,你可以通过查阅GDB的文档来了解更多详细的使用方法。
1.启动gdb
对于任何一个文件,必须在源代码生成二进制程序的时候, 加上 -g 选项
实例演示:
对文件test.c的文件进行调试,调试的文件命名为test:gcc -g test.c -o test
启动gdb,命令如下:(两种方式)
gdb test //启动调试名称为test的文件,但是会显示版本信息
gdb -q test //表示不打印gdb版本信息,界面较为干净;
运行图:
无版本信息指令:
2.查看源代码
list
或l
:查看源代码
实例演示:
3.运行程序
run
或r
:运行程序。
实例演示:
4.设置断点
break
或b
:设置断点, b 行号
删除断点:delete break_num
实例演示:
5.查看断点信息
info breakpoints
:显示断点信息
实例演示:
6.执行下一行代码。
next
或n
:执行下一行代码。
step
或s
:单步执行程序,进入函数调用。
重复上一条命令:按下回车 。即每一次重复执行上一条指令时,不需要重复输入,只需回车即可。
附:报错”The program is not being run.”
程序没有自动开始运行,此时输入 start 即可开始调试,注意不要使用 run 命令
实例演示:
7.查看变量
print
或p
:打印变量的值。
实例演示:
8.退出gdb
quit
或q
:退出GDB调试器。
这只是GDB的一些基本用法,GDB提供了很多功能,你可以通过查阅GDB的文档来了解更多详细的使用方法。
好啦,今天的内容就到这里啦,下期内容预告make/makefile、进度条的讲解
结语:今天的内容就到这里吧,谢谢各位的观看,如果有讲的不好的地方也请各位多多指出,作者每一条评论都会读的,谢谢各位。