0

私は、freescale の iMX6q ARM Cortex A9 プロセッサをベースにした ARM 開発ボードを持っています。ボード上でデバッグしたいアプリケーションもあります。開発ボードは、削除されていないランタイム ライブラリを使用して LTIB ファイル システムを実行しています。ホストでは、ライブラリのみを削除した Linaro ツールチェーン (具体的にはソフト フロート 2012.04) もダウンロードしました。

ホスト上で保持している LTIB ファイルシステムのイメージから、gdb (ホスト上で実行中) に別のランタイム ライブラリ セット (削除されていないもの) を使用するように指示したいと思います。

それ、どうやったら出来るの?

gdbに私に与えるように頼む

(gdb) show debug-file-directory

ホストファイルシステムにも存在しないパスが返されます....

The directory where separate debug symbols are searched for is 
"/cbuild/slaves/oort14/crosstool-ng/builds/arm-linux-gnueabi-linux/install/lib/debug".

そして、これが微調整する正しい変数であるかどうかさえ確信が持てません..

更新: debug-file-directory を設定しても役に立ちません。使用されるランタイム ライブラリはまだツールチェーン パスにあります。

Reading symbols from /mnt/nfs_host/Linaro/gcc-linaro-arm-linux-gnueabi-2012.04-20120426_linux/arm-linux-gnueabi/libc/lib/ld-linux.so.3...(no debugging symbols found)...done.

どうすればよいですか?ご協力ありがとうございました

4

1 に答える 1

2

gdb のset sysroot DIRECTORYコマンドを使用します ( GDB マニュアル)。デバイスにファイルシステムのコピーがあり、デバッグ情報が次の場所にあるとします/LTIB_ROOT

[device]$ gdbserver --multi :2345
$ arm-linux-gnueabihf-gdb # GDB from Linaro toolchain
(gdb) set sysroot /LTIB_ROOT
(gdb) target extended-remote DEVICE-IP:2345
(gdb) set remote exec-file /bin/true
(gdb) file /LTIB_ROOT/bin/true
(gdb) start
Temporary breakpoint 1 at 0x842c: file XXX.c, line YYY.
(gdb) info sharedlibrary 
From        To          Syms Read   Shared Object Library
0x400007a0  0x4001cf80  Yes         /LTIB_ROOT/lib/ld-linux.so.3
0x40037ea0  0x4004948c  Yes         /LTIB_ROOT/lib/libgcc_s.so.1
0x40068760  0x40172b14  Yes         /LTIB_ROOT/lib/libc.so.6
于 2013-03-08T19:34:45.497 に答える