Eclipseを用いてChoreonoidをデバッグする方法¶
Eclipseを用いてChoreonoidのプログラムをデバッグする方法について解説します。Eclipse用のプロジェクトの作成方法はいくつかありますが、ここでは既にあるMakefileを用いる方法を解説します。なお、Eclipseには多数のバージョンがあり、機能も豊富ですので、必ずしも説明の方法で行う必要はありません。
準備¶
デバッグ用のMakefileを作成するため、Choreonoidのトップフォルダで、
ccmake .
を実行します。
CMAKE_BUILD_TYPE を Debug に変更し、configure , generate して終了します。
注釈
インストール のページで説明しましたビルドディレクトリを使用した方法では、Eclipseにソースファイルを認識させることができませんでしたので、トップフォルダで行ってください。
既に、トップフォルダでmakeを行っている方は、
make clean
を実行して、Releaseモードでビルドした内容を削除しておいてください。
Eclipse のインストール¶
既に使用している環境がある方は、それを使用して頂いて構いません。
ここでは ubuntu 64bit 上に Eclipse Neon をインストールする場合を説明しています。
Eclipseホームページ https://www.eclipse.org/ を開いて、ダウンロードのページから
Get Eclipse Neon のところの Download ボタンを押して、eclipse-inst-linux64.tar.gz をダウンロードします。
ファイルを適当な場所に展開し、eclipse-inst を起動します。

Eclipse IDE for C/C++ Developers を選択すると先に進みます。
インストール先のフォルダを適宜入力して、インストールを開始します。
後はインストーラの指示に従ってください。
インストール先から、eclipse を起動します。workspaceを指定してください。デフォルトのままでも大丈夫です。

図のような画面が開きます。初めて使用される方は、TutorialsやSamplesが参考になると思います。
Welcome のタグを閉じて先に進みます。
右下にある Always Show .... のチェックを外せば、次の起動からは表示されなくなります。
プロジェクトの作成¶
タグを閉じると、C/C++のPerspectiveが開いていると思います。
開かない場合は、メニューの Window - Perspective - Open Perspective - C/C++ で開いてください。
メニューから File - New - MakeFile Project with Existing Code を選択します。

ダイアログが開いたら、図の様に、Project Nameと、Choreonoidのトップフォルダを設定し,終了します。

Project Explorer に choreonoid といプロジェクトが作成されます。これを選択し、メニューから Project - Build Project を選択します。

Console画面に、メッセージが表示されて、終了します。

ビルド時にエラーが起きたときもここに表示されます。
プログラムの実行¶
まずは、何も設定せずにChoreonoidを起動します。
Project Explorer の bin フォルダを展開すると、虫のアイコンのついた choreonoid があると思います。
これを選択、右クリックして、ポップアップメニューから Run As - Local C/C++ Application を選択します。

Choreonoidが起動するので、なにかプロジェクトを開いてシミュレーションを実行してみてください。
デバッグモードで動作しているのでかなり遅くなります。動作が確認できましたら、Choreonoidを終了して、元のウィンドウに戻ります。
図の様にツールバーの虫のアイコンの横の三角をクリックすると、choreonoidが登録されているのがわかります。
次回からは、この虫のアイコンをクリックすることでChoreonoidが起動できます。

サンプルのデバッグ¶
次にSampleプログラムをデバッグします。
Project Explorer で、 sample - SimpleController のフォルダを展開し、SR1LiftupController.cpp をダブルクリックします。

図のようにプログラムが表示されます。ブレイクポイントを設定したい行の左側、図のところをダブルクリックします。
青い丸印がブレイクポイントが設定された表示です。

この状態でツールバーの虫のアイコンをクリックしてChoreonoidを起動します。

図のようなメッセージが出たらYesを選択してデバッグ用のPerspectiveを開きます。
デバッグ用の画面に切り替わって、プログラムの最初の行で止まっています。(最初の行で止まらないようにする設定は後で説明します。)
図の緑の三角アイコンをクリックするか、F8キーを押すと先に進みます。

Choreonoidが起動したら、SR1Liftup.cnoidプロジェクトを開き、シミュレーションを実行します。
先ほどブレイクポイントを設定した行でプログラムが止まります。
Choreonoidのウィンドウの下にEclipseのウィンドウが隠れている場合は、前面に出してください。
図のアイコンをクリック、または F6キー を押すことで1行ずつのプログラムが実行できます。

左右のアイコンをクリック、または F5,F7キー で、関数の中に飛んだり、抜け出したりもできます。赤い四角アイコンで終了できます。
ブレイクポイントで止まっている時の変数の内容は、図のVariablesのところで見たり、設定したりできます。

注釈
デバッグ時に、AISTSimulatorのプロパティのコントローラスレッドがtrueに設定されていると、シミュレーション開始時にChoreonoidがフリーズしてしまうことがあります。そのようなときは、falseの設定にしてデバッグしてください。
プログラムの最初の行で止まらないようにする設定¶
メニューの Window - Preferences を選択して設定画面を開きます。
左側のリストから C/C++ - Debug - GDB と選択して画面を変更し、 Stop on startup at: という箇所のチェックを外します。
Apply して終了します。