嵌入式学习小组
登录
直播中
陈超
7年用户
934经验值
私信
关注
如何安装gdb工具?怎么使用?
开启该帖子的消息推送
如何安装gdb工具?怎么使用?
回帖
(1)
何玉华
2021-12-24 15:47:43
1. GDB
简介
在单片机开发中,KEIL、IAR、ADS1.2等集成开发环境下的调试工具对程序开发有很大的帮助, 尤其是出现各种疑难杂症的bug时,往往只能通过单步调试、堆栈查询、CPU寄存器查询、 甚至是反汇编来定位问题。同样的,在嵌入式Linux的开发环境下,也有能够实现类似功能的调试器,那就是GDB(GNU debugger)。 它是一个由GNU开源组织发布的,UNIX/LINUX操作系统下的、基于命令行的、功能强大的调试工具, 是嵌入式linux开发人员必不可少的工具。
2. GDB
的使用
2.1.
安装
gdb
工具
在开发板中执行gdb安装命令:
1
sudo apt install gdb -y
如下图:
2.2.
添加程序调试信息
把代码源文件通过NFS网络文件系统拷贝到开发板后,使用gcc进行编译,-g参数表示添加调试信息。
1
gcc -g hello.c -o hello
如下图:
2.3. gdb
启动应用程序
开发板输入运行gdb开始调试命令:
1
gdb hello
如下图:
加-q参数,启动时不会打印gdb的默认信息,界面清爽干净些。
如下图:
2.4.
查看源码
输入list(简写l)命令可以查看程序源代码,默认显示10行,通过回车键不断查看剩余代码。
如下图:
2.5.
运行程序
执行run(简写r)命令用于运行代码,在程序结束或者遇到断点处停下。
如下图:
2.6.
设置断点
运行break(简写b)命令可以在指定行设置一个断点,断点调试是程序调试里面使用频率最高的技巧,务必熟练掌握。
设置方法为”b”命令后加上相应的行号,在这里以在第6、7行设置断点为例:
2.7.
查看断点信息
设置好断点后,执行以下命令查看断点信息:
1
info b
如下图:
含义解释:
NUM:断点编号
Disp:断点执行一次之后是否还有效(keep:有效 dis:无效)
Enb:当前断点是否有效(y:有效 n:无效)
Address:内存地址
2.8.
单步调试
continue(简写c):继续执行,到下一个断点处(或运行结束)。
next(简写n):单步执行,跳过子函数。
strp(简写s):单步执行,进入子函数。
示例:在第6行设置来断点后,先输入r指令让程序运行到断点处,然后执行n指令进行单步调试, 可以看到第6行的打印信息在单步执行后,输出”hello,world”打印信息。 如下图:
示例:在第6行设置来断点后,先输入r指令让程序运行到断点处,然后执行s指令进行单步调试, 可以看到程序已经进入到printf函数的内部中。继续执行c指令,可以让程序继续运行。
如下图:
2.9.
查看变量
使用print(简写p)指令可以查看变量的值,用法为print+变量名。
示例:在程序的第8行处设置断点,看i的值在for循环两次执行过程中的变化。
如下图:
2.10.
清除断点
使用clear指令可以删除某一行对应的断点,用法为clear+行号。
2.11.
运行至函数结束
使用finish指令可以让程序运行到函数结束位置。
2.12.
显示源代码窗口
程序运行以后,使用”layout src”命令可以显示源代码窗口,当前执行代码会高亮标志,单步调试非常方便。
如下图:
2.13.
退出
gdb
执行quit(简写q)会退出gdb调试,返回到控制台终端。
3. CGDB
的使用
cgbd是gdb的终端界面增强版,相比windows下的visual studio而言, 它的功能显得十分轻量级而没有太多繁杂,它有上下两栏窗口,上栏的窗口支持vi编辑器的语法, 可以方便的使用它来进行字符串定位等功能。在gdb下使用”layout src”时,界面往往容易花屏, 而cgbd更加的稳定可靠。
3.1.
安装
cgdb
工具
在开发板中执行cgdb安装命令:
1
sudo apt install cgdb -y
如下图:
1.3.2. cgdb
启动应用程序
开发板输入运行gdb开始调试命令:
1
gdb hello
可以看到,cgbd默认启动显示源文件界面,而且颜色区分关键字和变量类型,十分美观。 它下面一栏是gdb窗口,可以直接使用上面介绍的gdb各种指令进行调试。
1. GDB
简介
在单片机开发中,KEIL、IAR、ADS1.2等集成开发环境下的调试工具对程序开发有很大的帮助, 尤其是出现各种疑难杂症的bug时,往往只能通过单步调试、堆栈查询、CPU寄存器查询、 甚至是反汇编来定位问题。同样的,在嵌入式Linux的开发环境下,也有能够实现类似功能的调试器,那就是GDB(GNU debugger)。 它是一个由GNU开源组织发布的,UNIX/LINUX操作系统下的、基于命令行的、功能强大的调试工具, 是嵌入式linux开发人员必不可少的工具。
2. GDB
的使用
2.1.
安装
gdb
工具
在开发板中执行gdb安装命令:
1
sudo apt install gdb -y
如下图:
2.2.
添加程序调试信息
把代码源文件通过NFS网络文件系统拷贝到开发板后,使用gcc进行编译,-g参数表示添加调试信息。
1
gcc -g hello.c -o hello
如下图:
2.3. gdb
启动应用程序
开发板输入运行gdb开始调试命令:
1
gdb hello
如下图:
加-q参数,启动时不会打印gdb的默认信息,界面清爽干净些。
如下图:
2.4.
查看源码
输入list(简写l)命令可以查看程序源代码,默认显示10行,通过回车键不断查看剩余代码。
如下图:
2.5.
运行程序
执行run(简写r)命令用于运行代码,在程序结束或者遇到断点处停下。
如下图:
2.6.
设置断点
运行break(简写b)命令可以在指定行设置一个断点,断点调试是程序调试里面使用频率最高的技巧,务必熟练掌握。
设置方法为”b”命令后加上相应的行号,在这里以在第6、7行设置断点为例:
2.7.
查看断点信息
设置好断点后,执行以下命令查看断点信息:
1
info b
如下图:
含义解释:
NUM:断点编号
Disp:断点执行一次之后是否还有效(keep:有效 dis:无效)
Enb:当前断点是否有效(y:有效 n:无效)
Address:内存地址
2.8.
单步调试
continue(简写c):继续执行,到下一个断点处(或运行结束)。
next(简写n):单步执行,跳过子函数。
strp(简写s):单步执行,进入子函数。
示例:在第6行设置来断点后,先输入r指令让程序运行到断点处,然后执行n指令进行单步调试, 可以看到第6行的打印信息在单步执行后,输出”hello,world”打印信息。 如下图:
示例:在第6行设置来断点后,先输入r指令让程序运行到断点处,然后执行s指令进行单步调试, 可以看到程序已经进入到printf函数的内部中。继续执行c指令,可以让程序继续运行。
如下图:
2.9.
查看变量
使用print(简写p)指令可以查看变量的值,用法为print+变量名。
示例:在程序的第8行处设置断点,看i的值在for循环两次执行过程中的变化。
如下图:
2.10.
清除断点
使用clear指令可以删除某一行对应的断点,用法为clear+行号。
2.11.
运行至函数结束
使用finish指令可以让程序运行到函数结束位置。
2.12.
显示源代码窗口
程序运行以后,使用”layout src”命令可以显示源代码窗口,当前执行代码会高亮标志,单步调试非常方便。
如下图:
2.13.
退出
gdb
执行quit(简写q)会退出gdb调试,返回到控制台终端。
3. CGDB
的使用
cgbd是gdb的终端界面增强版,相比windows下的visual studio而言, 它的功能显得十分轻量级而没有太多繁杂,它有上下两栏窗口,上栏的窗口支持vi编辑器的语法, 可以方便的使用它来进行字符串定位等功能。在gdb下使用”layout src”时,界面往往容易花屏, 而cgbd更加的稳定可靠。
3.1.
安装
cgdb
工具
在开发板中执行cgdb安装命令:
1
sudo apt install cgdb -y
如下图:
1.3.2. cgdb
启动应用程序
开发板输入运行gdb开始调试命令:
1
gdb hello
可以看到,cgbd默认启动显示源文件界面,而且颜色区分关键字和变量类型,十分美观。 它下面一栏是gdb窗口,可以直接使用上面介绍的gdb各种指令进行调试。
举报
更多回帖
rotate(-90deg);
回复
相关问答
怎样去
安装
并调试
GDB
交互式
工具
呢
2021-12-24
918
ST Visual无法启动
GDB
2018-10-16
2395
什么是
GDB
?
2021-12-24
656
如何搭建嵌入式
GDB
的调试环境?
2021-12-24
738
如何在Ubuntu系统上练习程序代码的
GDB
调试?
2021-12-24
605
如何搭建
gdb
的环境?
2021-12-24
544
如何配置
GDB
?
2021-12-24
859
S32DS中的gcc v10.2 for S32 platform v3.4没有
gdb
util是怎么回事?
2023-03-24
255
如何基于Ubuntu+Eclipse+
GDB
+OpenOCD+STlink搭建STM32开发环境?
2022-02-08
1437
如何
安装
gdbsloeber IDE?
2023-02-27
184
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分