我有一个运行-p 2000:2000的Docker容器,该容器在端口2000上运行一个gdbserver。

当尝试通过gdb从主机连接时,我得到以下信息:

(gdb) target remote localhost:2000
Remote debugging using localhost:2000
Ignoring packet error, continuing...
warning: unrecognized item "timeout" in "qSupported" response
Ignoring packet error, continuing...
Remote replied unexpectedly to 'vMustReplyEmpty': timeout

在docker容器中运行的应用程序是用C++编写的,位于fcgi(gdbserver :2000 spawn-fcgi -p 8000 -n ./myBinary)后面

主办
  • 操作系统:osx
  • gdb版本:8.0.1(与--with-all-targets一起安装)

  • 容器
  • 操作系统:ubuntu 14.04
  • gdb版本:7.7.1

  • 任何帮助,将不胜感激。

    最佳答案

    我在运行qemu时遇到同样的问题,并且我想将gdb与qemu内部gdbserver连接起来。
    我做以下工作:

  • 在系统模式下运行qemu。
  • 在qemu内运行gdbserver
  • 在主机上运行gdb并在gdb中连接gdbservr。

  • 软件版本如下:
    QEMU emulator version 2.12.92
    gdb 7.11.1
    GNU gdbserver (GDB) 7.8
    

    起初我无法连接gdbserver,错误是
    (gdb) target remote 192.168.240.136:1234
    Remote debugging using 192.168.240.136:1234
    Ignoring packet error, continuing...
    warning: unrecognized item "timeout" in "qSupported" response
    Ignoring packet error, continuing...
    Remote replied unexpectedly to 'vMustReplyEmpty': timeout
    

    我通过启动开始qemu时将更改为高级内核解决了该问题。从 vmlinux-2.6.32-5-4kc-malta vmlinux-3.2.0-4-4kc-malta ,然后将启动qemu命令更改为以下内容:
    sudo qemu-system-mips -M malta \
    -kernel vmlinux-3.2.0-4-4kc-malta \
    -hda debian_squeeze_mips_standard.qcow2 \
    -append "root=/dev/sda1 console=tty0" \
    -net nic,macaddr=00:16:3e:00:01:01 \
    -net tap \
    -nographic
    

    然后错误得到解决,我可以将gdbserver与gdb连接。

    可能的解决方法还包括
  • bash settingconflict
  • serial setting error
  • 关于c++ - 通过gdb连接到远程gdbserver时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55713340/

    10-16 10:04