2009-07-22 18 views
3

LinuxホストにEclipse CDT、CodeSourcery G ++ツールチェーンをインストールしました。私はCode Sourcery Eclipse IDEを使用しています。フリースケールのサイトからLinux Target Image Builderを使用してMCF5485ボードにLinuxカーネルをインストールしました。Eclipse CDTを使用したMCF5485EVBボードのリモートデバッグについて

Sourcery Eclipse IDEを使用してLinuxホストに「helloworld」プロジェクトを作成しました。 Sourceryフォルダの実行可能ファイル(gdbserver、catchsgevなど)をルートファイルシステムのボードにコピーしました。

ボード上でgdbserverを実行し、LinuxマシンからTCPを使用してデバッグします。 Sourcery Eclipse IDEでは、ボード上のルートにgdbserver(/root/bin)がインストールされているため、ターゲットのsysrootを/と指定しました。

Eclipseでデバッグ設定でIPアドレスを指定しましたが、残りはデフォルトです。 デバッグ設定の[共有ライブラリ]タブで[Translate sysroot pathnames]オプションを選択しました

gdbsrverをオンボード(gdbserver IP:port /pathname/to/executable)から起動し、Linuxホストでデバッグ設定を開始します。ブレークポイントのためにmain()で停止します。再開を押すと、次のエラーが表示されます。

warning: .dynamic section for "C:\\Program Files\\CodeSourcery\\Sourcery G++\\m68k-linux-gnu\\libc/lib/libc.so.6" is not at the expected address (wrong library or version mismatch?) 
Stopped due to shared library event 
Stopped due to shared library event 
Stopped due to shared library event 

次のように私のプログラムは次のとおりです。

include <stdio.h> 

int main(void) 
{ 
    int i=0; 
    printf("Hello = %d",i); 
    return 0; 
} 

私はSYSROOTを設定する必要があるいくつかのフォーラムで読んしかし、私はまた、私は私がボード上のルートファイルシステムにSYSROOTをインストールしている場合は、その読み何もする必要はありません。

答えて

1

Code Sourceryツールをターゲットに配置する必要はありませんが、GDBクライアントまたはEclipseがターゲットライブラリを見つけることができないか、またはターゲットライブラリがCode Sourceryツールが使用しているライブラリと一致しない。

これらのライブラリは、対象のLinuxビルドの一部としてビルドされると思います。彼らはあなたのターゲットプロセッサ用にクロスコンパイルする必要があり、/ libディレクトリ下のターゲットファイルシステム上に終わるでしょう。 Code Sourceryはあなたのターゲットにあらかじめビルドされたライブラリを提供するかもしれません。そして、これらはあなたのターゲットが使うべきライブラリでなければなりません。ターゲットのファイルシステムの一部である必要があります。

関連する問題