使用gdb服务器和客户端无法正常进行远程调试

时间:2014-10-21 15:46:27

标签: gdb remote-debugging gdbserver

我正在尝试使用运行Linux内核版本2.6.38.8的ARM目标上运行的gdbserver进行远程调试。

在这个目标上,我运行一个gdbserver,这是一个 32位 ELF文件,如下所示:

./gdbserver --remote-debug --attach 192.xxx.xxx.2:2345 1600

Attached; pid = 1600
Listening on port 2345

启动时的gdb服务器说:

  

此gdbserver配置为“ arm-none-linux-gnueabi

在Ubuntu(32位)计算机上,我运行GDB客户端,它似乎 32位(/ usr / bin / gdb),如下所示连接到远程GDB服务器。 在GDB提示符下输入如下:

(gdb) **target remote 192.xxx.xxx.2:2345**

Remote debugging using 192.xxx.xxx.2:2345

**warning: Architecture rejected target-supplied description**

以下是我在客户端的GDB提示中看到的错误:

Remote 'g' packet reply is too long: fcfdffff901bdbbe84d00e4002000000000000000000000000000100a2000000901bdbbe0000000000a006400000000000000000f819dbbe34bd3a4044bd3a40100000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008c4200b808422200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000
(gdb)

发出此命令后,我在目标gdbserver上看到以下错误:

Remote debugging from host 192.xxx.xxx.28

**readchar: Got EOF**

Remote side has terminated connection.  GDBserver will reopen the connection.

客户端gdb说:

This GDB was configured as "**i686-linux-gnu**".

注意:还尝试使用--target-debug选项在目标上运行gdbserver,但它仍然无法正常工作,但在客户端尝试连接时,它在服务器上出现了更多错误。如果它有帮助,我可以提出这些错误。

请参阅Errors

错误是什么?

服务器,客户端之间有什么不匹配?

如何解决此问题并使其正常工作?

1 个答案:

答案 0 :(得分:1)

我设法获得了一个GDB服务器和GDB客户端,它们适用于我的32位Ubuntu(客户端GDB)和ARM Cortex A8目标(GDB服务器)。我从the Linaro toolchain binaries link获得了预先构建的二进制文件。

这些完美无缺!

我也试过了a later version of the 4.9 toolchain,也很有效。