使用gdb调试QEMU模拟的RISC-V平台程序

我们跑一个裸核程序,也就是不带操作系统的程序,然后使用gdb调试该程序。

首先编译目标程序,然后使用QEMU的kernel参数进行加载

bash 复制代码
qemu-system-riscv64 -s -S -bios opensbi.elf -m 4G -smp 4 -kernel my_program.x -nographic

-s 让QEMU在1234端口侦听gdb的调试连接;

-S 表示启动后就挂起,等待 gdb 连接;

-bios 后面跟opensbi固件程序

-m 后面填写模拟内存大小

-smp 后面跟模拟CPU核心数

-kernel 后面跟要调试程序文件路径

-nographic 表示没有图像界面,只有命令行

然后启动gdb调试

bash 复制代码
$ riscv64-unknown-elf-gdb
(gdb) file my_program.x
(gdb) target remote :1234
(gdb) c

target remote 表示连接远程调试,后面跟上远程地址和端口,本机可省略地址

注意:务必要使用riscv编译工具链里面的gdb

相关推荐
AuroBreeze3 天前
RISC-V: Minimal U-mode implementation
linux·c语言·c++·risc-v
VermouthSp3 天前
RISC-V裸机程序(bare-metal-app)
risc-v
Qt程序员4 天前
深入理解:GDB调试器的工作原理
linux·c++·gdb·调试器
国科安芯4 天前
星载电源遥测模块抗辐照RISC-V MCU的性能适配与应用
单片机·嵌入式硬件·无人机·cocos2d·risc-v
十年编程老舅9 天前
Linux GDB 调试超详细教程:入门 + 实战
linux·c++·gdb
国科安芯9 天前
抗辐照MCU在高空长航时无人机热管理系统中的可靠性研究
单片机·嵌入式硬件·架构·无人机·cocos2d·risc-v
enjoy嚣士23 天前
Windows10下安装arm64架构的centos
qemu·aarch64 linux·arm64 linux·arm64 centos
开开心心就好25 天前
内存清理软件灵活设置,自动阈值快捷键清
运维·服务器·windows·pdf·harmonyos·risc-v·1024程序员节
国科安芯1 个月前
基于RISC-V架构的抗辐照MCU在空间EDFA控制单元中的可靠性分析
单片机·嵌入式硬件·性能优化·架构·risc-v·安全性测试
国科安芯1 个月前
空间站机械臂中MCU与CANFD抗辐照芯片的集成研究
单片机·嵌入式硬件·fpga开发·架构·risc-v