如何让 gdbserver 接受多个连接?

how to make gdbserver accept more than one connection?

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

QEMU的gdbstub只支持system/kernel级调试,而且一次只能连接一个。但是,您应该能够 运行 您的一个用户空间应用程序位于用户空间 gdbserver 下(运行 在来宾内部),并将第二个 gdb 连接到它。 (如果您还没有解决这个问题,您可能需要花一些时间摆弄才能让外部世界和您的访客系统之间的网络正常工作。)

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