Debugging 使用Buildroot生成RISC-vlinux-GDB

Debugging 使用Buildroot生成RISC-vlinux-GDB,debugging,gdb,qemu,buildroot,riscv,Debugging,Gdb,Qemu,Buildroot,Riscv,我正在尝试使用Buildroot为QEMU交叉编译Linux(RV64G ISA、lp64d ABI、Virt机器)。但很明显,GDB已经从我正在使用的buildroot版本(2019.08)中删除,并被列在遗留列表下 我的目标是能够运行RISC-V Linux应用程序(在用户模式和softmmu下)并进行GDB调试。我能够在两种模式下使用QEMU构建和运行RISC-V应用程序。但是我没有找到像其他主机实用程序那样生成GDB的方法。关于如何做到这一点有什么想法吗?从头开始构建riscv64 li

我正在尝试使用Buildroot为QEMU交叉编译Linux(RV64G ISA、lp64d ABI、Virt机器)。但很明显,GDB已经从我正在使用的buildroot版本(2019.08)中删除,并被列在遗留列表下


我的目标是能够运行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.
ls-gG-gdb-8.3.1-riscv64-linux-gnu/bin/riscv64-linux-gnu-gdb
-rwxr-xr-x 1 80395824年9月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——版本
GNU gdb(gdb)8.3.1
版权所有(C)2019免费软件基金会。
许可证GPLv3+:GNU GPL版本3或更高版本
这是自由软件:您可以自由更改和重新发布它。
在法律允许的范围内,不存在任何担保。
如果不想使用构建GDB,请从
/configure
命令中删除
--with tui


我希望这会有所帮助。

gdb肯定没有从Buildroot中删除!然而,当RISC-V支持添加到Buildroot中时,gdb支持不包括在内,因此BR2_PACKAGE_HOST_gdb_ARCH_支持取决于!BR2_riscv,选择RISC-V体系结构时隐藏gdb


因此,需要查看是否有支持RISC-V的gdb上游版本,如果有,请删除!BR2\u riscv依赖项,并添加适当的依赖项,以防止用户选择不支持RISC-V的较旧gdb版本。

有没有理由不直接构建上游gdb?您需要的是主机二进制文件,而不是目标二进制文件,因此我认为不需要特别涉及buildroot。