gdb远程交叉调试失败,并且“Remote' g'包回复太长了“rdquo;

我有远程调试的问题。 主持人:笔记本电脑intel i5与ubuntu 10.10 x86 目标:飞思卡尔iMX35(iMX35 PDK)手臂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 臂无-Linux的gnueabi,如 arm-none-linux-gnueabi-run arm-none-linux-gnueabi-c ++ arm-none-linux-gnueabi-size arm-none-linux-gnueabi-c ++ filt arm-none-linux-gnueabi-gprof arm-none-linux-gnueabi-strings 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 臂无-Linux的gnueabi-objcopy命令 目标是调试使用Qt创建的项目。 所以我简单地创建了一个Qt Quick Project - > Qt Quick Application 它创建了一个简单的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 install      $ 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 Free Software Foundation,Inc。   许可证GPLv3 +:GNU GPL版本3或更高版本http://gnu.org/licenses/gpl.html   这是免费软件:您可以自由更改并重新分发它。   在法律允许的范围内,不提供任何担保。输入“显示复制”   并详细说明“保修”。   此GDB配置为“--host = i686 --target = arm-none-linux-gnueabi”。   有关错误报告说明,请参阅:   HTTP://www.gnu.org/software/gdb/bugs / ...   从/home/elux/iMX35/ltib/rpm/BUILD/qt-everywhere-opensource-src-4.7.1 /platform/Test-build-arm/Test...done中读取符号。   (gdb)目标远程10.10.10.2:4000   使用10.10.10.2:4000进行远程调试   警告:无法解析XML目标描述;在编译时禁用了XML支持   警告:无法找到动态链接器断点功能。   GDB将无法调试共享库初始化程序   并跟踪显式加载的动态代码。   0x400007e0在? ()   (GDB) 和   (gdb)设置solib-absolute-prefix / home / elux / iMX35 / ltib / rootfs /   从/home/elux/iMX35/ltib/rootfs/lib/ld-linux.so.3...done中读取符号。   /home/elux/iMX35/ltib/rootfs/lib/ld-linux.so.3的已加载符号 但   (gdb)设置架构armv5te   目标架构假设为armv5te   远程“G”包应答太长:00000000a7ee8ebe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b0ed8ebe00000000e007004010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000      (gdb)b主要   远程“G”包应答太长:00000000a7ee8ebe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b0ed8ebe00000000e007004010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 你知道这个问题与什么有关吗?我该如何解决?     
已邀请:
当我最近在Ubuntu 12.04(x86_64)上遇到这个并以不同的方式解决它时,我想我会发表评论。在这种情况下的踢球者是Ubuntu似乎有启用libexpat的gdb。有些修修补补,这解决了我:   设置架构i386:x86-64:intel 因此,当架构不匹配时,可能会出现这种情况。     
我能够使用gdb-multiarch代替并解决了我的问题。     
我试图在运行Ubuntu 11.10 64bit的i5机器上调试飞思卡尔ARM时遇到同样的问题。 对我有用的修复是在配置gdb时指定--with-expat标志。我还必须安装libexpat1-dev包。 这里解释     

要回复问题请先登录注册