FORTRAN分段错误

FORTRAN分段错误,fortran,Fortran,用Fortran编写的项目可以在不同的机器上运行,但在其他一些Linux机器上运行时就不行了。其中一个上面写着分段错误,另一个上面写着分段错误(堆芯转储)。我对我的程序执行了gdb,它将segfault指向程序的第一行,在那里它应该打印模块中保存的变量的值,这非常令人惊讶 我现将所有资料汇编如下: gfortran -mcmodel=large -fPIC -fopenmp -lgfortran ... 你知道为什么会这样吗?gfortran版本在Ubuntu 12.10上是4.7.2。也许你

用Fortran编写的项目可以在不同的机器上运行,但在其他一些Linux机器上运行时就不行了。其中一个上面写着
分段错误
,另一个上面写着
分段错误(堆芯转储)
。我对我的程序执行了
gdb
,它将segfault指向程序的第一行,在那里它应该打印模块中保存的变量的值,这非常令人惊讶

我现将所有资料汇编如下:

gfortran -mcmodel=large -fPIC -fopenmp -lgfortran ...

你知道为什么会这样吗?gfortran版本在Ubuntu 12.10上是4.7.2。

也许你需要增加这些机器上的堆栈大小。在Stackoverflow上有关于这个问题的答案。检查ulimit。

可能需要增加这些机器上的堆栈大小。在Stackoverflow上有关于这个问题的答案。检查ulimit。

首先启用运行时检查-g-fcheck=all-fbacktrace。试着跑。然后尝试在gdb内部运行。带着结果返回这里。它可能是由错误的索引、未定义的指针或其他东西引起的…@VladimirF我设置了这些标志,gdb仍然指向同一个print语句…但问题是哪一个?显示代码。首先启用运行时检查-g-fcheck=all-fbacktrace。试着跑。然后尝试在gdb内部运行。带着结果返回这里。它可能是由错误的索引、未定义的指针或其他东西引起的…@VladimirF我设置了这些标志,gdb仍然指向同一个print语句…但问题是哪一个?显示代码。@torem:Try
ulimit-s
。如果不是无限的,则使用“
ulimit-s unlimited
@torem:Try
ulimit-s
”设置堆栈段大小。如果不是无限的,则使用“
ulimit-s unlimited
设置堆栈段大小。