如何让gdbserver接受多个连接?

时间:2015-03-06 00:52:19

标签: gdb kernel qemu gdbserver

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

2 个答案:

答案 0 :(得分:0)

QEMU的gdbstub仅支持系统/内核级调试,一次只支持一个连接。但是,您应该能够在用户空间gdbserver(在guest虚拟机内部运行)下运行您的一个用户空间应用程序,并将第二个gdb连接到该用户空间应用程序。 (你可能需要花一些时间来摆弄外部世界和你的客户系统之间的网络,如果你还没有解决这个问题。)

答案 1 :(得分:0)

我发现最好的方法是使用gdb命令add-symbol-file来添加用户空间应用程序调试信息;如果你知道他们的加载地址。所以准确地说,你必须像往常一样通过将gdb连接到gdbserver来启动内核调试;然后,您可以添加那些应用程序调试信息。您也可以使用.gdbinit脚本。阅读this