加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
    • 具体步骤如下:
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

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

2023/01/20
1388
阅读需 4 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

GDB是一个工具,可以像MDK IAR之类的一样一步步的执行程序,查看变量的值,设置断点,查看运行结果。

移植嵌入式linux的板子可能资源不够,性能不强,因此在板子上使用gdbserver通过网络与PC通信,在PC中运行gdb。

具体步骤如下:

获取GDB和gdb server

可以官网下载,也可以从虚拟机中已经安装的交叉编译环境中获取

电路板和ubuntu通信

通过nfs挂载虚拟机下的ubuntu

ifconfig eth0 192.168.1.20

mount -t nfs -o nolock,vers=3 192.168.1.10:/linux/nfs/mnt

配置设备IP为192.168.1.20   虚拟机内的ubuntu地址为192.168.1.10

在ubuntu中编译出带gdb调试信息的文件

arm-linux-gnueabihf-gcc -g test.c -o test

将文件放nfs挂载的文件夹。此过程需要在root权限下运行

放置gdb server并运行

将gdb server拷贝入开发板的/bin/目录下

在/bin/目录下运行

gdbserver 192.168.1.10:2001 test

192.168.1.10为ubuntu的ip地址,端口号可随便填写一个,保证不重复,没和已经用的冲突就可。test就是编译好后的文件名字。

注意一定要在gdb server文件所在的目录下运行。

上位机运行GDB

在ubuntu中运行gdb

arm-linux-gnueabihf-gdb test

然后就进入了gdb模式,使用gdb的命令就可以运行了

GDB命令

gdb的命令非常多,列举几个常用的

list命令

list <linenum> 显示linenum行周围的源程序

list <function> 显示function行周围的源程序

list 显示当前行后面的源程序

list - 显示当前行前面的源程序

break命令

break <linenum> 在指定行号停住
break <function> 在进入指定行号时停住
break *address 在程序运行的内存地址处停住
break 在下一条指令处停住

continue命令

continue命令恢复运行知道程序结束或下一个断点

print命令

此命令打印变量值

print <expr> <expr>是表达式,也是被调试程序中的表达式

print /<f> <expr> <f>是输出格式,按16进制输出就是/x

quit命令

命令(quit)用于退出调试,开发板上的 gdbserver 也会停止

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
SN74HC14DG4 1 Texas Instruments 6-ch, 2-V to 6-V inverters with Schmitt-Trigger inputs 14-SOIC -40 to 85

ECAD模型

下载ECAD模型
$0.38 查看
DSC1001CI5-015.0000T 1 Microchip Technology Inc CMOS Output Clock Oscillator
暂无数据 查看
PC817XNNSZ1B 1 Sharp Corp Transistor Output Optocoupler, 1-Element, 5000V Isolation,
$0.48 查看

相关推荐

电子产业图谱