嵌入式Linux的GDB调试环境建立

嵌入式linux的gdb调试环境由host和target两部分组成,host端使用arm-linux-gdb,target board端使用gdbserver。这样,应用程序在嵌入式目标系统上运行,而gdb调试在host端,所以要采用远程调试(remote)的方法。    一、建立安装gdb组件
    从ftp://ftp.gnu.org/gnu/gdb上下载gdb套件,我下载的是gdb-5.2.1.tar.gz。假定在debug下编译gdb套件,你前面已经设定了target,prefix参数。其中target是你的目标板,我的是arm-linux,prefix是你要安装的目标文件夹。
$tar xv*** gdb-5.2.1.tar.gz 
$mkdir debug/build-gdb 
$cd build-gdb 
$../gdb-5.2.1/configure --target=$target --prefix=$prefix 
$make 
$make install 
然后建立gdbserver。 
$mkdir debug/build-gdbserver 
$cd build-gdbserver 
$chmod +x ../gdb-5.2.1/gdb/gdbserver/configure 
$cc=arm-linux-gcc ../gdb-5.2.1/gdb/gdbserver/configure \ 
>--host=$target --prefix=$target 
$make 
$make install
使用arm-linux-strip命令处理一下gdbserver,然后将之复制到你的根文件系统的/usr/bin下,建立ramdisk盘。
    二、调试步骤
1、交叉编译,带参数-g加入调试信息。
假设要调试的程序为test.c。
#arm-linux-gcc -g test.c -o test
2、在target board开启gdbserver
#gdbserver  :2345 test 
gdbserver开始监听2345端口(你也可以设其他的值),然后启动test,你会看到“process test created:pid=157”
3、回到host端
#arm-linux-gdb test
最后一行显示:this gdb was configured as “--host=i686-pc-linux-gnu,--target=arm-linux”... 
说明此gdb在x86的host上运行,但是调试目标是arm代码。
(gdb)target remote :2345
注意:你的端口号必须与gdbserver开启的端口号一致,这样才能进行通信。
建立链接后,就可以进行调试了。调试在host端,跟gdb调试方法相同。注意的是要用“c”来执行命令,不能用“r”。因为程序已经在target board上面由gdbserver启动了。结果输出是在target board端,用超级终端查看。

使用DNN深度神经网络实现图像AIGC的开发-基于米尔瑞萨RZ/G2L开发板的创新应用
傅利叶智能瞄准千亿级通用机器人市场
COMPUTEX 2021 Virtual开幕展 科技实力引领全球产业数字化转型持续前行
国产激光雷达企业牧镭激光冲刺科创板IPO
中国申请68720件专利稳居世界第一
嵌入式Linux的GDB调试环境建立
瑞萨MCU/MPU在AI方面的应用
优橙科技背后的城市级智慧停车云平台项目
昕诺飞已为全球多个客户安装了上层空气UV-C紫外线空气消毒系统
英特尔旗下Mobileye宣布自研FMCW激光雷达,Luminar股价应声下跌
如何选择电磁流量计生产厂家
基于AT89S51单片机实现信号频率计数功能的设计
五款LED灯管性能对比测评,飞利浦照明表现出色
USB多路输出电源---最终成品展示及波形分析总结
转矩传感器的测量原理解析
三星s8再爆黑科技:屏幕压感技术,双击唤醒
人工智能公益发展的趋势及实践挑战人脸识别助寻亲
苹果15刚上市价格多少钱
AVX发布全新开放式边缘卡片连接器 专为LED微型条形灯设计
大型变压器的抢救性保护技术