是否可以与gdbserver建立多个连接



我使用的是Eclipse CDT和GNU ARM QEMU模拟器。Eclipse用运行在QEMU上的gdbserver启动自己的gdb会话。我还希望能够从OSX终端进行连接,以便进行更精细的控制。我还希望能够使用Node.js脚本中的GDB/MI来获取有用的数据,如注册状态等,并将其可视化在网页中。

当我用自己的gdb会话独立运行QEMU模拟器时,我可以很好地连接,但我想知道是否可以移植到Eclipse的gdb上,或者第二次连接到gdbserver

谢谢!


发件人https://sourceware.org/gdb/onlinedocs/gdb/Server.html(20.3.1.2(:

当gdbserver保持运行时,gdb可以稍后再次连接到它。这种重新连接对于断开连接的跟踪等功能非常有用。为了完整起见,一次最多可以连接一个gdb。


到目前为止,我还无法弄清楚,从文件中看,这似乎是不可能的。

我现在使用的解决方案是从终端手动运行QEMU模拟器。GNU ARM Eclipse调试器允许指定gdbserver host:port,我可以将其指向运行良好的独立QEMU。

为了允许模拟gdb会话,我可以为Eclipse创建一个自定义的TCP服务器来连接,而不是直接连接到gdbserver。这个TCP服务器将把Eclipse的所有流量转发到gdbserver,我也可以通过这个通道监听并向gdb发送消息。

最终的结果是,您可以像往常一样在Eclipse中调试和设置断点,但也可以通过任何方式与gdb交互,例如通过web界面、本地OSX终端等。

没有内置的方法可以做到这一点。有一个项目来实现它,但我不知道它可能有多活跃

你有一种代理的想法可能会奏效。我认为,这与为多客户项目提出的方法并没有太大的不同。如果你只对可能已经过时的数据感兴趣,另一种类似的方法可能是在某个地方插入一个T形,然后过滤掉感兴趣的回复。

最新更新