You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux命令行下如何通过ddd向QEMU传递-gdb参数?

问题:通过ddd命令行传递QEMU参数时-gdb tcp::1235解析异常

问题场景

  • 在ddd命令窗口内执行set args设置参数,QEMU可正常识别所有参数,包括-gdb tcp::1235:

    set args -machine ab21q,gic-version=max,secure=on,virtualization=true -cpu max -device loader,file=spl/u-boot-spl,addr=0x4000000 -m 1G -nographic -device loader,file=../../LinuxDevDrv/linux-5.15.68/arch/arm64/boot/Image,addr=0x80200000 -gdb tcp::1235 -S
    
  • 直接在Linux Shell通过ddd --args传递完整参数时,QEMU报错:
    执行命令:

    ddd --args ../../QEMU/qemu-6.2.0/build-baremetal/qemu-system-aarch64 -machine ab21q,gic-version=max,secure=on,virtualization=true -cpu max -device loader,file=spl/u-boot-spl,addr=0x4000000 -m 1G -nographic -device loader,file=../../LinuxDevDrv/linux-5.15.68/arch/arm64/boot/Image,addr=0x80200000 -gdb tcp::1235 -S
    

    报错信息:

    qemu-system-aarch64: tcp::1235: Unknown protocol 'tcp'
    

问题原因

-gdb是gdb(ddd基于gdb)的命令行选项,当通过ddd --args传递参数时,gdb会将-gdb识别为自身的选项,而非传递给QEMU的参数,导致仅把tcp::1235传给QEMU,引发解析错误。

解决方法

使用--分隔ddd自身参数与目标程序(QEMU)的参数,明确告知gdb/ddd:--之后的所有参数都直接传递给QEMU,不进行解析。修正后的命令如下:

ddd --args ../../QEMU/qemu-6.2.0/build-baremetal/qemu-system-aarch64 -- -machine ab21q,gic-version=max,secure=on,virtualization=true -cpu max -device loader,file=spl/u-boot-spl,addr=0x4000000 -m 1G -nographic -device loader,file=../../LinuxDevDrv/linux-5.15.68/arch/arm64/boot/Image,addr=0x80200000 -gdb tcp::1235 -S

内容的提问来源于stack exchange,提问作者Chan Kim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 12:53:21