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

相关推荐
yunteng5214 天前
VisualStudio远程编译调试linux_c++程序(二)
linux·c++·ssh·gdb·visual studio·remote
CYRUS STUDIO6 天前
详解ARM64可执行程序的生成过程
android·c语言·汇编·c++·gdb·arm64
云中双月6 天前
如何使用Ida Pro和Core Dump文件定位崩溃位置(Linux下无调试符号的进程专享)
linux·嵌入式·gdb·调试·gcc·崩溃·ida pro·ulimit·core dump·cross compile
飞凌嵌入式8 天前
FET113i-S核心板已支持RISC-V,打造国产化降本的更优解 -飞凌嵌入式
嵌入式硬件·嵌入式·risc-v·飞凌嵌入式
EVERSPIN8 天前
RISC-V单片机可快充手持电钻方案分享
单片机·嵌入式硬件·risc-v
谷公子的藏经阁13 天前
RISC-V笔记——显式同步
risc-v·fence·rcpc·显示同步·synchronization
码匠许师傅15 天前
【开源鸿蒙】OpenHarmony 5.0轻量系统最小开发环境搭建
python·pip·risc-v·openharmony·gcc·1024程序员节·hi3861
ywang_wnlo18 天前
【Kenel】基于 QEMU 的 Linux 内核编译和安装
linux·qemu·kernel
谷公子的藏经阁20 天前
RISC-V笔记——内存模型公理
risc-v·atomicity·progress·load value·axiom
谷公子的藏经阁20 天前
RISC-V笔记——重叠地址排序
risc-v·order·重叠地址排序·rvwmo·overlapping