• 基本は、OpenFOAMを動かす方法と同じで、ポイントはProjectの実行場所と、ソルバーの選択を間違えないようにすることです。
  • しかし、ここでいうソルバーはデバッグ環境で作成したソルバーを使用する点が異なる。つまり、デバッグ用のソルバーを別途作成する必要があります。
  • しかも、これを出来るようにするには、OpenFOAMの環境変数を設定変更し、事前に./Allwmakeしておく必要があったということです。
  • http://mogura7.zenno.info/~et/wordpress/wp-content/uploads/2012/01/50.png
  • なお、Howto Use OpenFOAM with Eclipseのページには、上記の点、さりげなく記してあり、This will take a few minutes. とありますが、few hours の間違いじゃないかと思います。

準備(OpenFOAMのデバッグ環境構築)

  • /OpenFOAM/OpenFOAM-2.0.x/etc/bashrc を編集
  • http://mogura7.zenno.info/~et/wordpress/wp-content/uploads/2012/01/51.png
  • 79行目が、通常「Opt」になっているので、これを「Debug」に変更
  • OpenFOAM専用端末を起動して、Allwmakeを実行
    cd ~/OpenFOAM/OpenFOAM-2.0.x
    ./Allwmake
  • 実行完了までは数時間かかる。

Eclipseの起動

  • OpenFOAM専用端末上からコマンドライン入力で起動

カスタムソルバーをデバッグ環境で再コンパイル

  • http://mogura7.zenno.info/~et/wordpress/wp-content/uploads/2012/01/52.png
  • Projectwo選択し、wclean ⇒wmake とダブルクリックする
  • 実行モジュールがDebug用フォルダに作成されていることを確認
  • http://mogura7.zenno.info/~et/wordpress/wp-content/uploads/2012/01/53.png
  • ①デバッグ実行用のケースフォルダを選択し、②Run⇒③Debug Configuration… を選択
  • http://mogura7.zenno.info/~et/wordpress/wp-content/uploads/2012/01/54.png
  • ①Projectがケースフォルダになっていることを確認
  • C/C++ Application:の欄は、以前に設定した実行用(Opt)のソルバーになっているのでこれを変更。⇒Browseボタンを押す。
  • http://mogura7.zenno.info/~et/wordpress/wp-content/uploads/2012/01/55.png
  • ①実行用モジュールの置き場にあるソルバー(myIcoFoam)が選択されているので、②platformsをクリックして選択のやり直し
  • http://mogura7.zenno.info/~et/wordpress/wp-content/uploads/2012/01/56.png
  • デバッグ用モジュールの収納フォルダ(linux64GccDPDubug)を選択してダブルクリック
  • http://mogura7.zenno.info/~et/wordpress/wp-content/uploads/2012/01/57.png
  • binフォルダの下にデバッグ用ソルバー()があるはずなので、これを①選択して、②OKボタンを押す
  • http://mogura7.zenno.info/~et/wordpress/wp-content/uploads/2012/01/58.png
  • 続いて、最下行あたりの、Select one… のあたりをクリック
  • http://mogura7.zenno.info/~et/wordpress/wp-content/uploads/2012/01/59.png
  • Launcher選択画面が現れるが、①の部分のチェックマークをオンにすると、中央部に表示された3つのLauncherを選択できるようになるので、②GDB(DSF)Create Process Launcher を選択して、③OKボタンを押す。
  • http://mogura7.zenno.info/~et/wordpress/wp-content/uploads/2012/01/60.png
  • これでようやくデバッガの設定が完了。あとはDebugボタンを押せばデバッガが起動する。

デバッガの起動

  • http://mogura7.zenno.info/~et/wordpress/wp-content/uploads/2012/01/61.png
  • Consoleに何やら出力され、確認(Confirm)画面がポップアップするが、当然「Yes」ボタンを押せばよいだろう
  • http://mogura7.zenno.info/~et/wordpress/wp-content/uploads/2012/01/62.png
  • デバッガが起動して、プログラムmain()の最初のステップで停止してくれる
  • ここで②の緑色のボタンを押せば、Resume実行されるが、このままではブレークポイントが何も設定されていないので、本例のような簡単な計算だと、全実行されてすぐ終わってしまう。
  • ③の部分で画面を切り替えられるので、C/C++のプロジェクト画面に戻る
  • http://mogura7.zenno.info/~et/wordpress/wp-content/uploads/2012/01/63.png
  • プログラムのソースコードがあるProject(myIcoFoam)を展開し、適当なファイル(icoFoam.C)を①ダブルクリックして表示させる。
  • ソースコードが表示されたら、行番号が表示された左側の部分で、②ブレークポイントを置きたい箇所あたりでダブルクリックする。
  • http://mogura7.zenno.info/~et/wordpress/wp-content/uploads/2012/01/64.png
  • ①行番号の左側に、小さな青いマークがついて、ブレークポイントが設定されたことがわかる
  • ②再度、画面を切り替えて、Debug画面に戻る
  • http://mogura7.zenno.info/~et/wordpress/wp-content/uploads/2012/01/65.png
  • ここで緑色のボタン(またはF8キー)を押すと、ソルバーが実行されて、設定したブレークポイントまで実行が完了し停止してくれる。
  • http://mogura7.zenno.info/~et/wordpress/wp-content/uploads/2012/01/66.png
  • もう一度Resume実行すると、Timeループが1順して、次の時間ステップに進んで、また同じ所で停止してくれる

補足

  • ということで、このデバッガそのものの詳しい使い方は、まだ判っておりませんが、とりあえずデバッガは、ちゃんと動いているということです。
  • あと、OpenFOAMを通常の使い方をしたい場合には、再度~/OpenFOAM/OpenFOAM-2.0.x/etc/bashrc を編集して
    WM_COMPILE_OPTION:=Opt

    に戻しておくことを忘れないようにせねばなりませんが、このあたり、Eclipseの起動スクリプトをOpenFOAMのデバッグ用としてカスタマイズしてしまった方が良いかもしれません。

  • 次期DEXCS、あるいは、DEXCS拡張版に組み込むとしたら、こんな(↓)メニューに組み込むことになるんでしょうか。
  • http://mogura7.zenno.info/~et/wordpress/wp-content/uploads/2012/01/67.png