在板子中调试GDB的方法

在板子中调试上面的方法是直接在 ubuntu 调试源代码,只能查看源代码的错误,如果你想要你的应用程序在板子中运行,想打出它在板子上运行的 bug,就要采用下面的方法。
一般的桌面 linux 系统,比如 ubuntu、centos 等,我们可以直接运行 gdb 来调试程序。但是嵌入式中芯片性能一般比较弱,所以直接在嵌入式系统中运行 gdb 不太现实(性能强大的嵌入式芯片可以这么做)。嵌入式系统中一般在 pc 端运行 gdb 工具,源码也是在 pc 端,源码对应的可执行文件放到开发板中运行。为此我们需要在开发板中运行 gdbserver,通过网络与 pc 端的 gdb 进行通信。因此要想在 pc 上通过 gdb 调试嵌入式程序,那么需要两个东西:gdb 和 gdbserver,其中 gdb 是运行在 pc 上的,gdbserver 需要我们移植到开发板上。
实操如下:
博主在 ubuntu 中为 imx6ull 开发板安装过交叉编译工具链,该工具链自带了 gdb 调试工具。包含了 arm-linux-gnueabihf-gdb 和 gdbserver。
将 gdbserver 拷贝到开发板 /bin 目录下。将上文编译出来的 gdbtest 文件拷贝到板子中。
确保 ubuntu和开发板可以进行网络通信。在开发板中输入如下命令:
gdbserver 192.168.31.121:2001 gdbtest //启动开发板上的 gdbserver192.168.31.121 为 ubuntu 的 ip 地址,2001 是端口号, 可以任意给一个端口号,gdbtest 是要调试的可执行文件。输入以后开发板输出信息如图所示:
接着在 ubuntu 中输入如下命令启动 gdb 调试工具:
arm-linux-gnueabihf-gdb gdbtest如果该命令不能运行,请将你交叉编译工具链的目录配置到 /etc/profile 文件最后,并且在命令行输入 source /etc/profile,其实就是让你的环境变量生效。
结果如图所示:
图中最下面的(gdb)行用于输入命令,输入如下命令连接到开发板上:
target remote 192.168.31.207:2001 //连接到开发板上上述命令表示连接到开发板上,其中 192.168.31.207 就是开发板 ip 地址,2001 就是开发板 gdbserver 设置的端口号。连接成功以后开发板中的 gdbserver 就会提示连接信息,
连接成功以后就可以 在 ubuntu 上进行代码调试了,调试的文件是在板子上运行的 ,可以复现你想要的信息,比如可以打出你的应用程序在板子上的 bug。

基于以太网的远程液位监控系统设计
如何做一个固态继电器电路
smt厂贴片加工有哪些常见不良?原因是什么?
未来全球物联网连接技术类型的市场预期与影响
手推式电动洗地机的特点及技术参数
在板子中调试GDB的方法
高通“变节”支持Qi无线充电续:A4WP合并WPC?
iPhone7和iphone7Plus什么时候上市
小米6Plus什么时候上市?最新消息:小米6Plus大屏来袭,将提升至8GB,价格2799起
一文看懂图腾柱电路工作原理
英特尔占据数据中心服务器芯片市场90%以上的市场份额
区块链技术中使用证书会带来一些独特的挑战
便携式太阳能备用移动电源设计方案
飞兆半导体全新高压栅极驱动器IC提供更佳抗噪能力和性能-FA
分析报告:美国制造商导入物联网比例极低不及10%
全球8K产品需求居高不下 推动显示技术的发展
土壤干湿度测量仪的参数、性能及应用
什么蓝牙耳机适合运动?好用的运动蓝牙耳机推荐
LG防反光显示器43UN700上架,采用42.5英寸IPS面板
大部分尺寸TV面板价格Q3上涨幅度超过30%