2013-04-11 39 views
1

我試圖通過一個OpenFOAM應用程序(在這種情況下,icoFoam,但這個問題一般是任何OpenFOAM應用程序)。mpirun OpenFOAM在gdb中的並行應用程序

我想用gdb來分析並行運行的分析(比方說,2個過程)。

要簡單地啓動應用程序並行,I型:

mpirun -np 2 icoFoam -parallel 

現在我想通過它在gdb步驟。但我在並行啓動icoFoam和調試時遇到問題,因爲我無法弄清楚如何在應用程序開始執行之前設置斷點。

我知道我可以做的一件事是在MPI_Initialize之後插入一段代碼,該代碼等待(和無限循環),直到我更改gdb中的某個變量。然後,我會並行運行該應用程序,將gdb會話附加到每個這些PID,並愉快地進行調試。但我寧願不必更改OpenFOAM源代碼並重新編譯。因此,我該如何啓動應用程序並行運行,如何讓它停止(如在主開始時),然後在gdb中執行它?所有這些都不需要更改原始源代碼?

最親切的問候, 馬德琳。

回答