Linux:gdb的简单使用


风晓
风晓 2024-01-07 11:18:32 65665 赞同 0 反对 0
分类: 资源
前言 gdb是Linux中的调试代码的工具

 

一、前置理解
我们都知道要调试一份代码,这份代码的发布模式必须是debug。那你知道在linux中,我们编译代码默认是什么模式吗?答案是release模式。

对test.c文件默认生成的a.out可执行程序调试就知道了。

按q退出调试界面。

那如何更进一步的证明?
我们要先知道一些小知识。

在debug发布时,一定要给可执行程序内部添加debug信息。(debug形成的可执行程序 > release形成的可执行程序)
Linux中形成的可执行程序格式:ELF格式
要使用gdb调试,必须在源代码生成二进制程序的时候,加上-g选项

mybin-g文件大小大于mybin-r文件大小

使用readelf -a 可执行程序 | grep -i debug指令,可以看出mybin-g文件中有debug信息,而mybin-r文件没有


mybin-g文件进入调试界面没有(no debugging symbols found)信息显示。

二、使用
list / l :显示可执行程序的源码,接着上次的位置往下列,以gdb的格式显示,每次列出10行。

l num(行号):从num行开始显示源代码

l 函数名:列出某个函数的源代码

break | b 行号:在某一行设置断点

b 函数名:在某个函数开头设置断点


info break | info b 查看断点信息


delete breakpoints | d breakpoints:删除所有断点

delete breakpoints n(断点编号) | d n(断点编号):删除序号为n的断点

(注意:断点编号是累计的,退出gdb清空所有断点)
disable n(断点编号):禁用断点

enable n:启用断点


run | r:运行程序(类似于VS的F5),遇到断点停止

没有断点
有断点

next | n:单条执行(类似VS的f10)


step | s:进入函数调用(类似VS的f11)


finish:执行到当前函数返回,然后停下来等待命令


until X行号:跳至X行


p 变量名:打印变量值

set var 变量名 = val:修改变量的值为val

display 变量名:跟踪查看一个变量,每次停下来都显示它的值

undisplay 变量名:取消对先前设置的那些变量的跟踪

breaktrace | bt:查看各级函数调用及参数

info (i)locals:查看当前栈帧局部变量的值

continue | c:从当前位置开始连续而非单步指向程序(从当前断点到下一个断点)


总结
以上就是我对于Linux中gdb使用的总结。感谢支持!!!

如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!

评价 0 条
风晓L1
粉丝 1 资源 2038 + 关注 私信
最近热门资源
银河麒麟桌面操作系统V10SP1-2403-update1版本中,通过“麒麟管家-设备管理-硬件信息-硬盘”查看硬盘类型时,显示的是HDD(机械硬盘),而实际上该笔记本的硬盘类型为SSD  81
以openkylin为例编译安装内核  76
分享解决宏碁电脑关机时自动重启的方法  73
统信uosboot区分未挂载导致更新备份失败  63
分享如何解决报错:归档 xxx.deb 对成员 control.tar.zst 使用了未知的压缩,放弃操作  63
统信uos安装mysql的实例参考  60
格之格打印机dp3300系列国产系统uos打印机驱动选择  57
在银河麒麟高级服务器操作系统V10SP3中,需要将默认shell类型修改为csh。  51
MySQL国产平替最佳选择---万里数据库(GreatDB)  45
最近下载排行榜
银河麒麟桌面操作系统V10SP1-2403-update1版本中,通过“麒麟管家-设备管理-硬件信息-硬盘”查看硬盘类型时,显示的是HDD(机械硬盘),而实际上该笔记本的硬盘类型为SSD 0
以openkylin为例编译安装内核 0
分享解决宏碁电脑关机时自动重启的方法 0
统信uosboot区分未挂载导致更新备份失败 0
分享如何解决报错:归档 xxx.deb 对成员 control.tar.zst 使用了未知的压缩,放弃操作 0
统信uos安装mysql的实例参考 0
格之格打印机dp3300系列国产系统uos打印机驱动选择 0
在银河麒麟高级服务器操作系统V10SP3中,需要将默认shell类型修改为csh。 0
MySQL国产平替最佳选择---万里数据库(GreatDB) 0
作者收入月榜
1

prtyaa 收益400.83元

2

zlj141319 收益237.91元

3

哆啦漫漫喵 收益231.52元

4

IT-feng 收益219.92元

5

1843880570 收益214.2元

6

风晓 收益208.24元

7

777 收益173.17元

8

Fhawking 收益106.6元

9

信创来了 收益106.03元

10

克里斯蒂亚诺诺 收益91.08元

请使用微信扫码

添加我为好友,拉您入交流群!

请使用微信扫一扫!