我正在尝试使用 gdb 调试 xv6。我的系统是 Debian 11。我已经运行了以下命令:
sudo apt-get install git build-essential gdb-multiarch qemu-system-misc gcc-riscv64-linux-gnu binutils-riscv64-linux-gnu
安装所有必需的软件包。再次运行它会产生0 upgraded, 0 newly installed, 0 to remove and 19 not upgraded.
然而,运行riscv64-unknown-elf-gdb
会产生-bash: riscv64-unknown-elf-gdb: command not found
。我的理解是安装gcc-riscv64-linux-gnu
应该安装而riscv64-unknown-elf-gdb
无需任何进一步的操作。我有什么遗漏的吗?
答案1
riscv64-unknown-elf
如果您对(而不是)感兴趣riscv64-linux-gnu
,则应该安装gcc-riscv64-unknown-elf
(这将拉入相关的binutils
)。
然而,这些软件包都没有安装特定于目标的变体gdb
。有了gdb-multiarch
,你需要指定目标架构你自己:
$ gdb-multiarch
(gdb) set architecture riscv:rv64
The target architecture is set to "riscv:rv64".