1

我正在尝试逐步完成 OpenFOAM 应用程序(在本例中为 icoFoam,但这个问题通常适用于任何 OpenFOAM 应用程序)。

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

为了简单地并行启动应用程序,我输入:

mpirun -np 2 icoFoam -parallel

现在我想在 gdb 中逐步完成它。但是我无法并行启动 icoFoam 并对其进行调试,因为我无法弄清楚如何在应用程序开始执行之前设置断点。

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

那么,如何启动并行运行的应用程序,如何让它停止(比如在 main 的开头),然后在 gdb 中单步执行它?全部不改变原始源代码?

最亲切的问候,玛德琳。

4

1 回答 1

1

你可以试试这个资源

看起来正确的命令是:

mpirunDebug -np 2 xxxFoam -parallel
于 2013-04-25T18:05:44.167 回答