完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
|
相关推荐
1个回答
|
|
1. GDB简介 在单片机开发中,KEIL、IAR、ADS1.2等集成开发环境下的调试工具对程序开发有很大的帮助, 尤其是出现各种疑难杂症的bug时,往往只能通过单步调试、堆栈查询、CPU寄存器查询、 甚至是反汇编来定位问题。同样的,在嵌入式Linux的开发环境下,也有能够实现类似功能的调试器,那就是GDB(GNU debugger)。 它是一个由GNU开源组织发布的,UNIX/LINUX操作系统下的、基于命令行的、功能强大的调试工具, 是嵌入式linux开发人员必不可少的工具。 2. GDB的使用 2.1. 安装gdb工具 在开发板中执行gdb安装命令:
2.2. 添加程序调试信息 把代码源文件通过NFS网络文件系统拷贝到开发板后,使用gcc进行编译,-g参数表示添加调试信息。
2.3. gdb启动应用程序 开发板输入运行gdb开始调试命令:
加-q参数,启动时不会打印gdb的默认信息,界面清爽干净些。 如下图: 2.4. 查看源码 输入list(简写l)命令可以查看程序源代码,默认显示10行,通过回车键不断查看剩余代码。 如下图: 2.5. 运行程序 执行run(简写r)命令用于运行代码,在程序结束或者遇到断点处停下。 如下图: 2.6. 设置断点 运行break(简写b)命令可以在指定行设置一个断点,断点调试是程序调试里面使用频率最高的技巧,务必熟练掌握。 设置方法为”b”命令后加上相应的行号,在这里以在第6、7行设置断点为例: 2.7. 查看断点信息 设置好断点后,执行以下命令查看断点信息:
含义解释:
示例:在第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.3.2. cgdb启动应用程序 开发板输入运行gdb开始调试命令:
|
|
|
|
只有小组成员才能发言,加入小组>>
793 浏览 0 评论
1152 浏览 1 评论
2528 浏览 5 评论
2861 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2711 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1074浏览 3评论
195浏览 2评论
457浏览 2评论
370浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
455浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 10:51 , Processed in 1.151531 second(s), Total 80, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号