使用 Buildroot 生成 RISC-V Linux GDB

Generating RISC-V Linux GDB using Buildroot

我正在尝试使用 Buildroot 为 QEMU(RV64G ISA、lp64d ABI、虚拟机)交叉编译 Linux。但显然,GDB 已从我使用的 buildroot 版本(2019.08)中删除,并列在旧版列表中。

我的 objective 是为了能够 运行 RISC-V Linux 应用程序(在用户模式和 softmmu 中)和 GDB 调试。我能够在两种模式下使用 QEMU 构建和 运行 RISC-V 应用程序。但是我没有找到像其他主机实用程序那样生成 GDB 的方法。关于如何做到这一点有什么想法吗?

从头开始构建 riscv64-linux-gnu-gdb 的可能过程是:

PREFIX=$(pwd)/gdb-8.3.1-riscv64-linux-gnu
wget ftp://ftp.gnu.org/gnu/gdb/gdb-8.3.1.tar.xz
tar Jxf gdb-8.3.1.tar.xz
mkdir gdb
cd gdb
../gdb-8.3.1/configure --program-prefix=riscv64-linux-gnu- -with-tui --target=riscv64-linux-gnu --prefix=${PREFIX}
make all install
cd -

构建工件将位于 $(pwd)/gdb-8.3.1-riscv64-linux-gnu:

ls -gG gdb-8.3.1-riscv64-linux-gnu/bin/riscv64-linux-gnu-gdb
-rwxr-xr-x 1 80395824 Sep 26 14:16 gdb-8.3.1-riscv64-linux-gnu/bin/riscv64-linux-gnu-gdb

gdb-8.3.1-riscv64-linux-gnu/bin/riscv64-linux-gnu-gdb --version
GNU gdb (GDB) 8.3.1
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

如果您不想使用 TUI interface 构建 GDB,请从 ./configure 命令中删除 --with-tui

希望对您有所帮助。

gdb 肯定没有从 Buildroot 中删除!然而,当在 Buildroot 中添加 RISC-V 支持时,不包括 gdb 支持,因此 BR2_PACKAGE_HOST_GDB_ARCH_SUPPORTS 依赖于 !BR2_riscv,它在选择 RISC-V 架构时隐藏 gdb。

所以需要查看是否有支持RISC-V的gdb上游版本,如果有,去掉!BR2_riscv依赖,并添加相应的依赖,防止用户选择不支持 RISC-V 的旧 gdb 版本。