リモート デバッグに問題があります。
ホスト: ubuntu 10.10 x86 を搭載したラップトップ Intel i5 ターゲット: Freescale 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-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
arm-none- linux-gnueabi-objcopy
目標は、Qt で作成されたプロジェクトをデバッグすることです。だから私は単にQtクイックプロジェクトを作成しました->単純なHello Worldアプリケーション(C ++ / Qml)を作成するQtクイックアプリケーションを作成しました(デバッグまたはリリースで)クロスコンパイルし、ターゲットで正常に動作します。したがって、クロス コンパイルはこれから紹介する問題とは無関係であると確信しています。
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 Test (テストは、Qt Creator をデバッグ モードでクロスコンパイルしたものです) GNU gdb (GDB) 7.2
Copyright (C) 2010 Free Software Foundation, Inc.
License 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 in ?? () (gdb)
と
(gdb) set solib-absolute-prefix /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) set architecture armv5te
The target architecture is assumed to be armv5te
Remote 'g' packet reply is too long: 00000000a7ee8ebe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b0ed8ebe00000000e007004010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000(gdb) b main
Remote 'g' packet reply is too long: 00000000a7ee8ebe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b0ed8ebe00000000e007004010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
この問題が何に関係しているのか分かりますか? どうすれば解決できますか?