使用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

相关推荐
张世争4 小时前
RT-Thread qemu LVGL9.5 显示驱动更新 lv_port_disp.c
lcd·qemu·rt-thread·lvgl9.5
张世争7 小时前
RT-Thread qemu LVGL9.5 鼠标 indev 驱动更新 lv_port_indev.c
qemu·rt-thread·indev·lvgl9.5
TsingtaoAI1 天前
TsingtaoAI荣膺2025澳门首届DSA国际创新创业大赛奖项,RISC-V AI机器人引领行业新突破
人工智能·机器人·risc-v
赖small强2 天前
【Linux C/C++开发】 GCC -g 调试参数深度解析与最佳实践
linux·c语言·c++·gdb·-g
ベadvance courageouslyミ2 天前
GDB相关操作
gdb
MounRiver_Studio2 天前
RISC-V IDE MRS2使用笔记(四):编译后静态堆栈调用分析
ide·mcu·嵌入式·risc-v
张世争2 天前
RT-Thread bsp qemu-vexpress-a9 编译环境
qemu·rt-thread·编译
luoganttcc3 天前
RISC-V的开源GPGPU Vortex 学习资料
risc-v
阿昭L3 天前
RISC-V指令简介
risc-v·计算机组成原理
cooldream20095 天前
基于 RISC-V VisionFive 的桌面数字时钟项目实战
嵌入式硬件·risc-v·嵌入式开发