我有一个运行-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
)后面主办
容器
任何帮助,将不胜感激。
最佳答案
我在运行qemu时遇到同样的问题,并且我想将gdb与qemu内部gdbserver连接起来。
我做以下工作:
软件版本如下:
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连接。
可能的解决方法还包括
关于c++ - 通过gdb连接到远程gdbserver时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55713340/