Linux---gdb工具

目录

初步了解

gdb安装

gdb使用


初步了解

gdb是Linux中的调试器。

发布软件一般有两种方式debug和release。

debug版本:一般开发人员使用,这个版本形成的可执行程序有调试功能和调试信息,文件比较大。

release版本:一般测试人员使用,这个版本形成的可执行程序没有调试功能和调试信息,文件较小。

gcc/g++编译时默认release版本且动态链接。

gcc -g 指定文件 #编译链接指定文件以debug版本发布
g++ -g 指定文件 #编译链接指定文件以debug版本发布

 这样,形成的可执行程序就可以被我们调试了。

gdb安装

yum install -y gdb      #root用户安装gdb
sudo yum install -y gdb #非root用户安装gdb

gdb使用

#基本操作
gdb 可执行程序:开始调试指定的可执行程序。
quit:退出调试。

#打印相关指令
l :显示代码(从哪一行开始取决于vim退出时光标停留在哪),之后回车键继续打印之后的代码。
l 指定行号 :显式指定行之后的部分代码,之后回车键继续打印之后的代码。
l 指定函数 :显示指定函数。
l 源文件:指定行号 :显示源文件中从指定行号开始的几行。
l 源文件:指定函数 :显示源文件中的指定函数。

#打断点
b 行号:给指定行打断点,gdb会给当前断点一个断点编号。
b 函数名:给指定函数名打断点(会打在函数首句处)。
b 源文件:行号:给源文件的指定行打断点。
b 源文件:函数名:给源文件的指定函数打断点。

#查看断点信息
info b:查看所有打的断点。

#删除断点
d 断点编号:删除指定断点编号的断点。

#开启/禁用断点
disable 断点编号:使指定断点编号的断点失能(还是一个端点,只不过跟没打一样)。
enable 断点编号:使失能断点重新恢复为断点。

#调试操作
r:运行到最近的断点处停下来,若没有断点,就运行出结果。
n:逐过程(将每一行指令都当作一个整体执行)。
s:逐语句(可以进入到函数内部)。
c:从一个断点运行到下一个断点。
finish:将一个函数运行结束,就停止。
until 行号:在一个范围内,直接运行到指定行。
bt:查看调用堆栈。
set var 变量名=需要修改的值:修改一个变量的内容(用来测多分支)。

#调试中查看参数信息
p 变量名:显示指定变量名的值(非常显示,只显示一次)。
p &变量名:显示指定变量名的地址(非常显示,只显示一次)。
display 变量名:常显示指定变量的值。
display &变量名:常显示指定变量的地址。
undisplay 断点编号:取消常显示。

这里举例说明一下断点失能问题。

断点的开启和禁用就看断点信息列表中的Enb参数,y表示开启,n表示禁用(失能)。

最后,如有不足,请各位大佬多多指正!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值