2016-11-16 8 views
1

私は、実行しているArndale 5250ボード、linaro 3.12(2013)でネイティブデバッグ用にGDB 7.8をコンパイルしました。 GDBは "arm-linux-gnueabihf"として構成され、静的にリンクされたライブラリを使用して構築されました。 ボード上では正常に動作しますが、「記録再生モード」で動作します。 printfステートメントを参照すると、次のメッセージが生成されます。GDBレコードプロセスは、ARMのioctl要求をサポートしていません

"Process record and replay target doesn't support ioctl request 0x7efff06c() 
    (null)Process record: inferior program stopped.” 

    [process 2169] #1 stopped. 
    0x76f0f704 in ??() from /lib/arm-linux-gnueabihf/libc.so.6 

さらに処理を進めると、それ以上デバッグできなくなります。

(gdb) n 
    Cannot find bounds of current function 

私はターゲットプラットフォームのライブラリが不足していると考えています。 GDBをビルドしたとき、私はターゲットのArndaleボードにexeだけをコピーしました。ライブラリはコピーしませんでした。私は、ライブラリとの静的なリンクがその作業を行うと考えました。 私は通常、私のx86マシンでやっているように、どのようにARMアーキテクチャ上でプロセスレコードと再生を実行できるのでしょうか?

答えて

0

gdbのプロセスレコード機能は、各アセンブリ命令を実行し、その効果を記録することによって機能します。カーネルを呼び出すときには、システムコールの効果も知る必要があります。多くの可能なiocctlコールがあるので、ioctlはここでは1つのチャレンジを提示します。

あなたのlibcがgdbがまだわかっていないioctlを使用しているかのように、説明からわかります。この場合、gdbでその呼び出しのサポートを実装する以外の解決策はありません。

関連する問題