linux应用程序如何高效定位问题,其中工具的使用是一个重要手段。Openbmc基于嵌入式的Linux,集成了完善的GDB功能,本文抛砖引玉式介绍当前Openbmc的GDB调试工具的生成与使用步骤。
1、构建并安装openbmc SDK
(1) 使用openbmc的编译命令构建sdk的安装脚本:bitbake -c populate_sdk obmc-phosphor-image
(2) 安装sdktmp/deploy/sdk/oecore-x86_64-armv7ahf-vfpv4d16-toolchain-nodistro.0.sh ,安装路径自行输入:
2、使能debugfs
(1) 配置编译debugfs
(2) 编译后可使用的debugfs路径为:
① 实例路径:tmp/work/evb_ast2600-openbmc-linux-gnueabi/obmc-phosphor-image/.0-r0
② 将rootfs和rootfs-dbg的内容合并到一个目录中。
3、配置Openbmc 编译镜像中包含gdbserver,并编译bmc镜像文件
(1) 在安装配置文件中使能gdbserver
4、使用实例
(1) 步骤1安装完SDK后,进入安装目录,使能sdk环境变量
(2) 配置环境变量:source environment-setup-core2-64-poky-linux
(3) 启动gdb: client./sysroots/x86_64-oesdk-linux/usr/bin/arm-openbmc-linux/arm-openbmc-linux-gdb,执行结果:
(4) 目标机启动gdbserver
① 启动bmc
② 登录bmc并启动gdbserver命令调试/bin/gzip程序:
root@qemux86:~# gdbserver localhost:1234 /bin/gzip
(5) 主机端gdb client端链接gdb server进行调试
(gdb) set sysroot debugfs
(gdb) set substitute-path /usr/src/debug debugfs/usr/src/debug
(gdb) target remote IP-of-target:1234
说明:
1、debugfs需更换为步骤2中合并的目录
2、IP-of-target需更换为调试目标主机的ip
1个小广告,App寄快递更便宜: