如何使gdbserver接受多个连接?

如何使gdbserver接受多个连接?,gdb,kernel,qemu,gdbserver,Gdb,Kernel,Qemu,Gdbserver,我正在qemu中调试一个操作系统(内核+一个用户空间应用程序),使用连接到gdbserver的gdb。因为我有两个二进制文件,所以我想先用内核二进制文件连接到gdbserver,然后用用户空间二进制文件连接到gdbserver,这样我就可以顺利地从内核跟踪切换到用户空间跟踪。 但是,gdbserver似乎不能接受多个连接。有可能绕过这个问题吗?QEMU的gdbstub只支持系统/内核级调试,一次只支持一个连接。但是,您应该能够在userspace gdbserver(在来宾内部运行)下运行一个u

我正在qemu中调试一个操作系统(内核+一个用户空间应用程序),使用连接到gdbserver的gdb。因为我有两个二进制文件,所以我想先用内核二进制文件连接到gdbserver,然后用用户空间二进制文件连接到gdbserver,这样我就可以顺利地从内核跟踪切换到用户空间跟踪。
但是,gdbserver似乎不能接受多个连接。有可能绕过这个问题吗?

QEMU的gdbstub只支持系统/内核级调试,一次只支持一个连接。但是,您应该能够在userspace gdbserver(在来宾内部运行)下运行一个userspace应用程序,并将第二个gdb连接到该应用程序。(如果您还没有整理好外部世界和来宾系统之间的网络,您可能需要花一些时间来摆弄,以使其正常工作。)

我发现最好的方法是使用gdb命令add symbol文件来添加用户空间应用程序调试信息;只要你知道他们的装货地址。因此,准确地说,您必须像往常一样通过将gdb连接到gdbserver来启动内核调试;然后,您可以添加这些应用程序调试信息。不过,您也可以使用.gdbinit脚本。Read

gdbserver
用于用户空间。使用KDB/KGDB进行内核级调试。KDB/KGDB与linux过于相关;我的内核与linuxI没有任何关系。我认为这个解决方法会很好,但是我的内核现在还没有完全进化到支持这个特性的程度。不过,谢谢你的建议