Linux ホストに Eclipse CDT、CodeSourcery G++ ツールチェーンをインストールしました。Code Sourcery Eclipse IDE を使用しています。Freescale サイトの Linux Target Image Builder を使用して、Linux カーネルを MCF5485 ボードにインストールしました。
Sourcery Eclipse IDE を使用して、Linux ホスト上に「helloworld」プロジェクトを作成しました。実行可能ファイル (gdbserver、catchsgev など) を Sourcery フォルダーからルート ファイルシステムのボードにコピーしました。
ボード上で gdbserver を実行し、Linux マシンから TCP を使用してデバッグします。Sourcery Eclipse IDE では/
、ボード ( /root/bin
) のルートに gdbserver をインストールしたため、ターゲットに sysroot を指定しました。
Eclipse のデバッグ構成で IP アドレスを指定しましたが、残りはデフォルトです。[デバッグ構成] の [共有ライブラリ] タブで [sysroot パス名を変換する] オプションを選択しました。
ボード上で 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 をインストールしていれば、何もする必要がないことも読みました。