19

リモート デバッグに問題があります。

ホスト: 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

この問題が何に関係しているのか分かりますか? どうすれば解決できますか?

4

3 に答える 3

18

最近Ubuntu 12.04(x86_64)でこれに遭遇し、別の方法で解決したので、コメントしたいと思いました。この場合のキッカーは、Ubuntu が libexpat を有効にした gdb を持っているように見えることです。後でいくつかいじって、これで解決しました:

アーキテクチャ i386:x86-64:intel を設定

したがって、これは、アーキテクチャの不一致もある場合に発生する可能性があるようです。

于 2013-05-15T09:16:23.840 に答える
6

Ubuntu 11.10 64 ビットを実行している i5 マシンで Freescale ARM をデバッグしようとすると、同じ問題が発生しました。

私にとってうまくいった修正は、gdb を構成するときに--with-expatフラグを指定することでした。libexpat1-devパッケージもインストールする必要がありました。

説明はこちら

于 2012-03-15T19:53:48.303 に答える