【问题标题】:GDB connection timeout when attaching to QEMU附加到 QEMU 时 GDB 连接超时
【发布时间】:2022-07-08 03:56:56
【问题描述】:

我正在尝试将 GDB 附加到 QEMU 以用于我在 RISC-V 上的裸机项目。但是,它无法连接。我的主机是 Windows 机器上 WSL 的 Ubuntu。我正在使用 openSBI 提供的固件来启动我的自定义 \"bootloader\" (boot.bin)。

我运行 QEMU(在 Ubuntu WSL 中):

qemu-system-riscv64.exe --machine virt -m 256 -bios ./opensbi/build/platform/generic/firmware/fw_jump.bin -kernel ./boot.bin --nographic -s -S

然后我打开一个新的命令行(新的 Ubuntu WSL 窗口)并启动 GDB:

riscv-gnu/bin/riscv64-unknown-elf-gdb

并指定一个目标: target remote localhost:1234

几秒钟后,这给了我错误:localhost:1234:连接超时。

有没有人遇到过这个问题,不胜感激!

    标签: gdb qemu riscv bare-metal


    【解决方案1】:

    通常 WSL 在不同的网络中有一个 IP 地址,因此如果您想在 WSL 和 Windows 之间建立连接,您需要提供正确的 IP 而不仅仅是localhost

    在 Windows 下检查 ipconfig 并在 gdb 中提供正确网络的 IP。

    在我的例子中,Windows 的本地地址是 192.168.1.24,而 WSL 的本地地址是 172.190.0.1。因此,要将 gdb 从 WSL 连接到在 Windows 上运行的 qemu,我需要输入 target remote 192.168.1.24

    【讨论】:

    • 抱歉,我有点不清楚,GDB 和 QEMU 都在 WSL(Ubuntu)上运行,但在不同的窗口上运行。将编辑澄清
    • 为什么你将 qemu 作为 Windows 可执行文件运行?这是 Windows 版本 qemu-system-riscv64.exe。你不能安装Linux版本并使用它吗?
    • 我不知道我为什么这样做,那是一个愚蠢的错误。 GDB 现在连接。感谢您发现这个简单的错误!
    猜你喜欢
    • 2012-06-08
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 2019-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-04
    相关资源
    最近更新 更多