Linux学习系列十四:使用gdb和gdbserver构建在线调试环境

单片机一般使用Jlink通过SWD或者JTAG接口直接在IDE中在线调试,Linux应用程序通常是加printf输出log去调试,这种方式简单,但是有些隐藏的程序bug只通过加打印信息不那么容易定位,这时可以通过类似单片机调试的gdb调试来实现,本篇为大家介绍linux环境下在线调试环境的搭建,希望对大家有所帮助。

GDB, the GNU Project debugger, allows you to see what is going on `inside' another program while it executes -- or what another program was doing at the moment it crashed.

它的工作原理是:在主机Ubuntu下运行gdb,在嵌入式板子上运行gdbserver,这样就可以在线调试了。    

全文内容见:

https://topsemic.com/1609.html

 

本系列往期文章见:

1:Linux学习系列一:开发环境搭建

2:Linux 学习系列二:运行 Hello World

3:Linux学习系列三:uboot编译下载

4:Linux学习系列四:Kernel编译下载

5:Linux学习系列五:Nand Flash根文件系统制作

6:Linux学习系列六:操作GPIO

7:Linux学习系列七:操作UART

8:Linux学习系列八:操作网口

9:Linux学习系列九:使用WIFI

10:Linux学习系列十:使用CAN

11:Linux学习系列十一:使用4G模块

12:Linux学习系列十二:LCD QT UI显示

13:Linux学习系列十三:USB摄像头拍照

 

在嵌入式Linux开发中,我们经常需要进行在线调试。其中一个常用的工具是gdbgdbservergdb是一个强大的调试工具,而gdbserver是一个针对嵌入式系统的调试服务器。本文将介绍如何使用gdbgdbserver在嵌入式Linux系统上构建在线调试环境。 1. 安装gdbgdbserver 在Ubuntu下安装gdbgdbserver非常简单,只需要执行以下命令即可: ``` sudo apt-get install gdb gdbserver ``` 2. 编译可调试的程序 在编译程序时需要加上-g参数,这样可以将调试信息编译进可执行文件中。例如: ``` gcc -g -o myprog myprog.c ``` 3. 启动gdbserver 在嵌入式系统上启动gdbserver,需要指定监听的IP地址和端口号。例如: ``` gdbserver 192.168.1.100:1234 myprog ``` 其中192.168.1.100是嵌入式系统的IP地址,1234是端口号,myprog是可执行文件的名称。 4. 连接gdb客户端 在开发机上启动gdb客户端,连接到gdbserver。例如: ``` gdb myprog (gdb) target remote 192.168.1.100:1234 ``` 这样就可以开始在线调试程序了。 5. 使用gdb调试程序 在线调试程序的过程与本地调试并没有太大的区别。可以使用gdb的各种命令进行调试,例如下断点、单步执行、查看变量值等等。例如: ``` (gdb) break main (gdb) run (gdb) next (gdb) print i ``` 6. 总结 使用gdbgdbserver可以方便地在嵌入式Linux系统上进行在线调试。需要注意的是,在调试时需要保证嵌入式系统能够与开发机正常通信,同时需要使用-g参数编译程序,将调试信息编译进可执行文件中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值