前言:上一篇文章中我们讲解了Linux下的gcc与g++的使用,今天我们将进一步的学习gdb与makefile来帮我们更好的理解与使用基础开发工具。
博主CSDN主页:卫卫卫的个人主页
专栏分类:Linux的深度刨析
代码仓库:卫卫周大胖的学习日记
关注博主和博主一起学习!一起努力!
程序的发布方式有两种,debug模式和release模式
Linux gcc/g++出来的二进制程序,默认是release模式
要使用gdb调试,必须在源代码生成二进制程序的时候, 加上 -g 选项
GDB是一个用于调试程序的强大工具,可以运行在Linux操作系统下。在Linux中,你可以通过以下步骤来安装和使用GDB:
sudo apt-get install gdb
(请注意,这需要管理员权限)。gdb
命令来启动GDB调试器。program
的程序,可以使用命令gdb program
。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的文档来了解更多详细的使用方法。
对于任何一个文件,必须在源代码生成二进制程序的时候, 加上 -g 选项
实例演示:
对文件test.c的文件进行调试,调试的文件命名为test:gcc -g test.c -o test
启动gdb,命令如下:(两种方式)
gdb test //启动调试名称为test的文件,但是会显示版本信息
gdb -q test //表示不打印gdb版本信息,界面较为干净;
break
或b
:设置断点, b 行号
删除断点:delete break_num
实例演示:
info breakpoints
:显示断点信息
实例演示:
next
或n
:执行下一行代码。
step
或s
:单步执行程序,进入函数调用。
重复上一条命令:按下回车 。即每一次重复执行上一条指令时,不需要重复输入,只需回车即可。
附:报错”The program is not being run.”
程序没有自动开始运行,此时输入 start 即可开始调试,注意不要使用 run 命令
实例演示:
print
或p
:打印变量的值。
实例演示:
quit
或q
:退出GDB调试器。
这只是GDB的一些基本用法,GDB提供了很多功能,你可以通过查阅GDB的文档来了解更多详细的使用方法。
好啦,今天的内容就到这里啦,下期内容预告make/makefile、进度条的讲解
结语:今天的内容就到这里吧,谢谢各位的观看,如果有讲的不好的地方也请各位多多指出,作者每一条评论都会读的,谢谢各位。