Debugging gdb远程交叉调试失败,错误为;远程';g';“数据包回复太长”;

Debugging gdb远程交叉调试失败,错误为;远程';g';“数据包回复太长”;,debugging,qt4,gdb,qt-creator,gdbserver,Debugging,Qt4,Gdb,Qt Creator,Gdbserver,我在远程调试方面有问题 主机:笔记本电脑英特尔i5与ubuntu 10.10 x86 目标:飞思卡尔iMX35(iMX35 PDK)arm 11 开发环境:Qt Creator 2.1RC和Qt4.7.1库。 Arm编译器路径:/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/Arm-none-linux-gnueabi/bin arm-none-linux-gnueabi-gcc-4.1.2 arm-none-linux-gnueabi-o

我在远程调试方面有问题

主机:笔记本电脑英特尔i5与ubuntu 10.10 x86 目标:飞思卡尔iMX35(iMX35 PDK)arm 11 开发环境:Qt Creator 2.1RC和Qt4.7.1库。 Arm编译器路径:/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/Arm-none-linux-gnueabi/bin

arm-none-linux-gnueabi-gcc-4.1.2 arm-none-linux-gnueabi-objdump arm-none-linux-gnueabi-addr2line arm-none-linux-gnueabi-gccbug
arm none linux gnueabi ranlib arm none linux gnueabi ar
arm none linux gnueabi gcov arm none linux gnueabi readelf arm none linux gnueabi as
arm-none-linux-gnueabi运行arm-none-linux-gnueabi-c++
arm-none-linux-gnueabi大小arm-none-linux-gnueabi-c++filt
arm none linux gnueabi gprof arm none linux gnueabi字符串 arm none linux gnueabi cpp arm none linux gnueabi ld
arm-none-linux-gnueabi-strip arm-none-linux-gnueabi-g++
arm none linux gnueabi nm arm none linux gnueabi gcc
arm none linux gnueabi对象复制

目标是调试使用Qt创建的项目。 所以我只是创建了一个Qt-Quick项目->Qt-Quick应用程序 它创建了一个简单的Hello World应用程序(C++/Qml) 我交叉编译它(在调试或发行版中),它工作得很好 瞄准目标。所以我很确定交叉编译 与我将向您展示的问题无关

我下载了gdb 7.2并执行了以下操作:

$export PATH=/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin:$PATH
$cd/home/elux/iMX35/gdb-7.2/
$./configure--target=arm none linux gnueabi--build=i686
$make
$sudo make安装

$export CC=arm none linux gnueabi gcc
$export LD=arm none linux gnueabi LD
$cd gdb/gdbserver/
$./configure--build=i386--host=arm none-linux-gnueabi--target=arm none-linux- gnueabi
$make

$sudo cp gdbserver/home/elux/MX35/ltib/rootfs/usr/bin/(将gdbserver复制到目标)

然后在目标上:

$gdbserver 10.10.10.1:4000测试
创建过程测试;pid=2194
正在侦听端口4000

关于目标:

$arm none linux gnueabi gdb测试(测试在调试模式下由Qt Creator交叉编译) GNU gdb(gdb)7.2
版权所有(C)2010免费软件基金会 许可证GPLv3+:GNU GPL版本3或更高版本
这是免费软件:您可以自由更改和重新发布它。
在法律允许的范围内,不存在任何担保。键入“显示复制”
和“显示保修”了解详细信息。
此GDB配置为“-host=i686--target=arm none-linux-gnueabi”。
有关错误报告说明,请参阅:

从/home/elux/iMX35/ltib/rpm/BUILD/qt-everywhere-opensource-src-4.7.1/platform/Test-BUILD-arm/Test…读取符号完成。
(gdb)目标远程10.10.10.2:4000
使用10.10.10.2:4000进行远程调试
警告:无法解析XML目标描述;XML支持在编译时被禁用
警告:找不到动态链接器断点函数。
GDB将无法调试共享库初始值设定项
并跟踪显式加载的动态代码。
0x400007e0英寸??()
(gdb)

(gdb)设置solib绝对前缀/home/elux/iMX35/ltib/rootfs/
从/home/elux/iMX35/ltib/rootfs/lib/ld linux.so.3读取符号…完成。
为/home/elux/iMX35/ltib/rootfs/lib/ld linux.so.3加载的符号

但是

(gdb)设置架构armv5te
目标体系结构假定为armv5te
远程“g”数据包回复太长:00000000 A7EE8EB000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

(gdb)b main
远程“g”数据包回复太长:00000000 A7EE8EB000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000


你知道这个问题与什么有关吗?如何解决这个问题?

在运行Ubuntu 11.10 64位的i5机器上调试飞思卡尔ARM时,我遇到了同样的问题

对我有效的修复方法是在配置gdb时指定--with expat标志。我还必须安装libexpat1开发包


最近我在Ubuntu 12.04(x86_64)上遇到了这个问题,并用另一种方式解决了它,我想我应该发表评论。在这种情况下,关键在于Ubuntu似乎启用了带有libexpat的gdb。后来进行了一些修补,这为我解决了问题:

设置体系结构i386:x86-64:intel


因此,当体系结构不匹配时,似乎也会出现这种情况。

我可以使用gdb multiarch来代替,并解决了我的问题。

不知道OP,但这解决了我的问题。非常感谢。如果在设置架构后问题仍然存在,则可能是寄存器大小切换问题:另外,请检查以确保
gdb multiarch
包是最新的。非常有效,谢谢!