У меня проблема с удаленной отладкой.
Хост: ноутбук Intel i5 с Ubuntu 10.10 x86
Цель: рука Freescale 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[12124 visiblearm-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-run arm-none-linux-gnueabi-c ++
arm-none-linux-gnueabi-size arm-none-linux-gnueabi-c ++ filter
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-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
$ экспорт LD = arm-none-linux-gnueabi-ld
$ cd gdb / gdbserver /
$ ./configure --build = i386 --host = arm-none-linux-gnueabi --target = arm-none-linux- гнуэаби
$ 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 Test (Тест кросс-скомпилирован в Qt Creator в режиме отладки) GNU gdb (GDB) 7.2
Copyright (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) target remote 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' слишком длинный: 00000000a7ee8ebe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Ответ удаленного пакета "g" слишком длинный: 00000000a7ee8ebe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Как я могу решить эту проблему?