小编Dan*_*iel的帖子

gdb远程调试。实现一个假的 gdbserver 存根。经过多次请求和响应后,收到警告:无效的远程回复

为了项目的需要,我编写了一个简单的java套接字程序来实现一个“假”gdbserver存根。因此,支持最少数量的 gdb RSP 命令:g、G、m、M、c 和 s。对于其他命令,只需响应“$#00”即可。根据gdb的手册,这会告诉gdb“服务器”不支持其他命令。

我使用 Eclipse CDT 来帮助我进行调试。在调试配置中,我选择了 c/c++ 远程应用程序,并在 localhost:10000 上使用 TCP 设置调试器连接,我的 java 程序将在其中侦听。

首先,gdb 发送 qSupported、Hg0、qTStatus、? 和 qC 等命令。对所有命令的响应都是“$#00”,告诉 gdb“服务器”不支持这些命令。然后,gdb 发送 qAttached 和 qOffsets。发送两个“$#00”响应并收到来自 gdb 的“+”后,gdb 显示“警告:远程回复无效:”。

有人可以告诉我为什么会发生这种情况吗?为什么gdb不发送命令并说“无效的远程回复:”,我不知道什么回复无效,毕竟我只是发送“$#00”和“+”给gdb。

c linux debugging gdb gdbserver

6
推荐指数
1
解决办法
2476
查看次数

标签 统计

c ×1

debugging ×1

gdb ×1

gdbserver ×1

linux ×1