Fortran 无法在gdb中设置断点

Fortran 无法在gdb中设置断点,fortran,gdb,mpi,Fortran,Gdb,Mpi,我试图在gdb中运行Fortran MPI代码。用GNU编译。为了调试,我只运行一个进程。我无法让代码在任何断点处实际停止。例如,我想让它停在1000行,所以我说 (gdb) break 1000 一切似乎都很好。它没有给出错误消息。然后我点击run,然后。。。它直接通过我的断点运行。我已经绝对确保执行路径根本没有绕过我的断点;断点处的代码正在执行 有人知道问题出在哪里吗?它与MPI有关吗?还是别的什么?您可以随时使用简单的技巧: mpirun -np 2 xterm -e gdb your_

我试图在gdb中运行Fortran MPI代码。用GNU编译。为了调试,我只运行一个进程。我无法让代码在任何断点处实际停止。例如,我想让它停在1000行,所以我说

(gdb) break 1000
一切似乎都很好。它没有给出错误消息。然后我点击
run
,然后。。。它直接通过我的断点运行。我已经绝对确保执行路径根本没有绕过我的断点;断点处的代码正在执行


有人知道问题出在哪里吗?它与MPI有关吗?还是别的什么?

您可以随时使用简单的技巧:

mpirun -np 2 xterm -e gdb your_mpi_code
这样,您将得到多个gdb会话,每个会话运行一个MPI进程

确保使用
-g

如果你有钱,可以花,看看这里:


由于缺少有关如何运行调试器的任何信息,我只能猜测您调试的是
mpirun
,而不是应用程序。。。。最简单的方法是使用适当的MPI感知调试器,至少遵循调试时MPI实现的文档。