Debugging 在gdb中运行OpenFOAM并行应用程序

Debugging 在gdb中运行OpenFOAM并行应用程序,debugging,parallel-processing,gdb,openmpi,Debugging,Parallel Processing,Gdb,Openmpi,我试图逐步介绍一个OpenFOAM应用程序(在本例中是ICOSmoam,但这个问题通常适用于任何OpenFOAM应用程序) 我想使用gdb来逐步完成并行运行的分析(比如说,2个过程) 要简单地并行启动应用程序,请键入: mpirun -np 2 icoFoam -parallel 现在我想在gdb中逐步介绍它。但我在并行启动ICOSmoam并调试它时遇到了困难,因为我无法在应用程序开始执行之前确定如何设置断点 我知道我可以做的一件事是在MPI_初始化之后插入一段代码,等待(和无限循环),直到我

我试图逐步介绍一个OpenFOAM应用程序(在本例中是ICOSmoam,但这个问题通常适用于任何OpenFOAM应用程序)

我想使用gdb来逐步完成并行运行的分析(比如说,2个过程)

要简单地并行启动应用程序,请键入:

mpirun -np 2 icoFoam -parallel
现在我想在gdb中逐步介绍它。但我在并行启动ICOSmoam并调试它时遇到了困难,因为我无法在应用程序开始执行之前确定如何设置断点

我知道我可以做的一件事是在MPI_初始化之后插入一段代码,等待(和无限循环),直到我更改gdb中的某个变量。然后我会并行运行该应用程序,将gdb会话连接到每个PID,并愉快地进行调试。但是我不想改变OpenFOAM源代码并重新编译

那么,我如何启动并行运行的应用程序,如何让它停止(比如在main的开头),然后在gdb中逐步完成它呢?所有这些都不改变原始源代码吗

最亲切的问候, 玛德琳。

看起来正确的命令是:

mpirunDebug -np 2 xxxFoam -parallel

看起来正确的命令是:

mpirunDebug -np 2 xxxFoam -parallel