Armadilloフォーラム

Armadilo-460とEclipseのリモートデバッグの方法

sid5323

2014年8月19日 11時12分

いつもお世話になります。森本と申します。長文失礼します。

ATDE3(VMware)にEclipse4.2(JUNO)をインストールしてArmadilo-460とリモートデバッグを試みていますが上手くいきません。
アドバイス頂ければ幸いです。

【環境】
 接続形態:ローカルエリアネットワーク(有線接続・固定IP)
 Eclipseワークスペース場所:/home/atmark/workspace
プロジェクトディレクトリ名:sample
実行モジュールパス:/home/atmark/workspace/sample/Debug/sample
ArmadilloとATDE3のファイル共有形態
  NFS
ATDE3側(NFSサーバ):/home/atmark を共有
Armadillo側: /mnt/pc に ATDE3側(NFSサーバ):/home/atmark をマウント
ATDE3の細工
/mnt/pc に /home/atmark をシンボリックリンクを作成

【導入手順】
ATDE3側
 1.nfsサーバをインストール
   sudo apt-get install nfs-kernel-server
 2.NFS共有ディレクトリを登録
   /etc/exportsに以下を追記
   /home/atmark 192.168.1.0/255.255.255.0(rw,sync,no_root_squash,no_subtree_check)
 3.i386 Linux用 ARMクロスデバッガ をダウンロードしインストール
   ダウンロード元URL:http://armadillo.atmark-techno.com/howto/gdbserver-a
   インストール先:/usr/bin
 4./mnt/pc に /home/atmark のシンボリックリンクを作成
 5.Eclipse4.2(JUNO)をインストール
 6.Pleiades - Eclipse プラグイン日本語化プラグイン (1.4.0)をインストール
 7.Eclipseを起動し、新規ソフトウェアのインストールを実行して以下をインストール
    プログラミング言語
      ├ C/C++開発ツール
      └ C/C++開発ツール SDK
    モバイルおよびデバイス開発
      └ C/C++ GCC Cross Compiler Support
 8.プロジェクトのデバッグ構成にて C/C++リモートアプリケーションに 新規で追加し以下を設定。
使用ランチャー:GDB(DSF)Automatic Remote Debugging ランチャー
    メインタグ
      C/C++アプリケーションのリモート絶対ファイル・パスに以下を指定
        /mnt/pc/workspase/sample/Debug/sample
   ターゲット・パスとなるダウンロードをスキップします。 にチェック
接続の新規ボタン押下でArmadilloを指定
リモートシステムタイプ:SSHのみを選択
リモート1システム接続(SSHのみ)
ホスト名:[ArmadilloのIPアドレス]を入力
Sftpファイル、Sshシェル、Sshターミナル
(内容の変更なし)
デバッガータグ
  GDBデバッガー に arm-linux-gdb を指定

Armadilloカーネル構築にて以下を有効にして再構築する
 ・NFS file system support
 ・Provide NFSv3 client support
 ・SSHサーバ
 ・SFTP
 ・gdbserver
 ・以下を参考にatmarkユーザの追加(ATDE3からArmadilloへSSHログインが出来る様にするため)
   http://armadillo.atmark-techno.com/howto/add-

【実行手順】
Armadillo側
 rootでログインし、Armadillo起動時に一回だけ実行する
    (ATDE3でビルドしたモジュールを直接参照できるようにするため/mnt/pcに:/home/atmarkをマウントし、
     gdbserver、SSHの受信ができる様にフィルタリングを解除してSSHDを起動する)
 /etc/init.d/sshd
   mkdir /mnt/pc
   iptables -F INPUT
   iptables -F OUTPUT
   iptables -P INPUT ACCEPT
   iptables -P OUTPUT ACCEPT
   mount -t nfs -o nolock [ATDE3のIP]:/home/atmark /mnt/pc

ATDE3側
 Eclipseを起動する
 デバッグを開始する

【動作状況】
デバッグが始まると Eclipseのローカル側デバッガ(gdb)が即座に終了(終了コード1)となりコンソールには何も表示されずデバッグが開始されません。
この時、gdbserver側は受信待ち(Listeing on Port XXXX がコンソールに出力)となったままです。

また、試しにEclipseのリモートデバッガモジュールをARMクロスデバッガからATDE3にあるGDBに変更してデバッグを開始すると
以下のエラーが表示されモジュールが実行できません。(これは想定通りです)
シグナル:SIGSEGV:Segmentetion fault
No source available for "0x0"

さらに、Eclipseを使用せずにターミナルからARMクロスデバッガを使用すると実行モジュールのコードが見れているのを確認しました。

この様な現象を経験された方で解決された方、または下方が行った手順以外(Windows環境でも構いません)でEclipseを使用してのリモートデバッグに成功している方いらっしゃいましたらご助言頂けると幸いです。

コメント

sid5323

2014年8月19日 19時40分

自己レスです。解決できました。

【導入手順】
ATDE3側
手順8の 「GDBデバッガー に arm-linux-gdb を指定」
のところを arm-linux-gnueabi-gdb にすることでリモートデバッグが出来る様になりました。

ご協力いただきました方々に感謝いたします。ありがとうございました。

at_ohsawa

2014年8月19日 20時01分

報告ありがとうございます。

他の古いHowtoもArmadillo-400シリーズで使うときには、
ツールチェーンの前半を、arm-linux-gnueabi- に読み変えると
動くようになりますね。

余談ですが、Armadillo-800シリーズであれば、
arm-linux-gnueabihf- にすると使う事ができます。