- 调试环境准备
- gdb 调试方法
实验操作系统:ubuntu 18.04.5。准备如下环境:
- 下载 huawei liteos, 并按照官方文档。编译 realview-pbx-a9 工程,生成调试镜像。参考:Liteos Doc。本次实验基于commit id 为:ec2f62b79514c2edce90eb979a624ec815b6a391。
- 安装 qemu,本次实验安装的 qemu 版本为 qemu 7.0.0。 参考:QEMU 安装。
- 安装gdb-multiarch,安装方法:sudo apt-get install gdb-multiarch。本次实验版本为:
-
用 qemu 运行 realview-pbx-a9 程序
qemu-system-arm -machine realview-pbx-a9 -smp 4 -m 512M -kernel out/realview-pbx-a9/Huawei_LiteOS.bin -nographic -S -s
-machine:设置QEMU要仿真的虚拟机类型。
-smp:设置guest虚拟机的CPU的个数。
-m:为此guest虚拟机预留的内存大小,如果不指定,默认为128M。
-kernel:设置要运行的镜像文件(包含文件路径)。
-nographic:以非图形界面启动虚拟机。
最后的-S -s就是让系统停止,并监听1234端口,等待gdb链接调试。
-
用gdb-multiarch连接镜像
gdb-multiarch --tui
-
连接 qemu gdb server
set architecture arm file Huawei_LiteOS.elf target remote localhost:1234 break main c
效果如下图所示:
程序就会停到main函数,后续都是一些gdb操作了。这里就不再追溯。



