我正在尝试使用运行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。
错误是什么?
服务器,客户端之间有什么不匹配?
如何解决此问题并使其正常工作?
答案 0 :(得分:1)
我设法获得了一个GDB服务器和GDB客户端,它们适用于我的32位Ubuntu(客户端GDB)和ARM Cortex A8目标(GDB服务器)。我从the Linaro toolchain binaries link获得了预先构建的二进制文件。
这些完美无缺!
我也试过了a later version of the 4.9 toolchain,也很有效。