gdb调试工具
文章目录
- 1.GDB的作用
- 2.GDB的安装
- 3.gdb使用
- 4.使用vim显示代码行号
- 5.使用gdb在调试过程中显示某一行附近的代码
- 6.使用gdb单步调试功能
- 7.中途查看变量值
- 8.显示与删除断点信息
- 9.通过地址访问变量数值
- 10.显示当前寄存器上的值
- 11.查看进程
- 12.查看对应的汇编指令
- 参考资料
gdb是GNU Project Debugger的简称,也是GNU(GNU’s Not Unix)开源项目中遵循GPL发行许可证的free software。
1.GDB的作用
一般来说,GDB注意提供以下四个方面的帮助:
- 指定一些参数
- 断点
- 分析crash现场
- 直接修改程序,看结果
2.GDB的安装
sudo apt-get install gdb
gdb --version
3.gdb使用
- gdb 程序
- 程序出现问题时 gdb 程序 core
- 调试正在运行的进程(前提是当前进程有输出信息)
示例:
vim test.c
CTR+ALT+T打开另外一个命令栏
gcc -o bin test.c -g
gdb ./bin
退出gdb调试:q
gdb ./bin -q (可以省略gdb版本等信息)
run(执行)
4.使用vim显示代码行号
:set nu
5.使用gdb在调试过程中显示某一行附近的代码
gcc -o bin test.c -g(编译,输出bin文件)
gdb ./bin -q(调试,简洁输出)
list 7(显示第7行附近的代码)
6.使用gdb单步调试功能
break 7(在程序第7行添加断点)
break 函数名(在函数入口处添加断点)
run(运行,可以简写为r)
next(单步执行)
c(continue,继续执行)
7.中途查看变量值
设置断点 break 7(行号)
运行到断点
print 变量名称(查看变量的值)
set var 变量=30(中途修改变量的值)
8.显示与删除断点信息
info break (显示断点信息)
delet 断点序号(删除断点)
9.通过地址访问变量数值
break 7
r
print &变量名(打印变量的地址)
x 内存地址(以16进制显示对应地址上存放的信息,比如变量的数值)
x /d 内存地址(以10进制显示对应地址上存放的信息,比如变量的数值)
10.显示当前寄存器上的值
info register(显示当前寄存器上的值)
11.查看进程
info thread(查看当前进程)
thread 1(进程号)
12.查看对应的汇编指令
disass
参考资料
-
【嵌入式C语言高阶版】https://www.bilibili.com/video/BV1qCSkY7EyD?p=5&vd_source=2530ffd02d9c0529a10f9f95fa54a4ab
-
gcc编译器https://blog.csdn.net/weixin_46187287/article/details/149233337?spm=1011.2415.3001.5331
-
vim编辑器简单使用https://blog.csdn.net/weixin_46187287/article/details/149205361?spm=1011.2415.3001.5331