私は OpenFOAM アプリケーションをステップ実行しようとしています (この場合は icoFoam ですが、この質問は一般的にすべての OpenFOAM アプリに当てはまります)。
gdb を使用して、並行して実行されている分析を実行したいと考えています (たとえば、2 つの proc)。
アプリを並行して単純に起動するには、次のように入力します。
mpirun -np 2 icoFoam -parallel
ここで、gdb でステップスルーしたいと思います。しかし、アプリケーションが実行を開始する前にブレークポイントを設定する方法がわからないため、icoFoam を並行して起動してデバッグするのに問題があります。
私ができることがわかっていることの 1 つは、MPI_Initialize の後に、gdb の変数を変更するまで待機する (そして無限ループになる) コードのセクションを挿入することです。次に、アプリを並行して実行し、それらの PID のそれぞれに gdb セッションを接続して、喜んでデバッグします。しかし、OpenFOAM のソースを変更して再コンパイルする必要はありません。
では、並行して実行しているアプリケーションを開始するにはどうすればよいでしょうか。アプリケーションを停止して (main の開始時など)、gdb でステップ実行するにはどうすればよいでしょうか? すべて元のソース コードを変更せずに?
よろしくお願いします、マドレーヌ。