分段故障sigsegv在gdb下停止

时间:2014-06-26 18:49:35

标签: debugging parallel-processing gdb fortran mpi

我正在使用并行运行的大型模拟代码。用户编写代码来初始化模拟,然后运行整个程序。我只有在使用3个以上的处理器时才会出现seg错误(SIGSEGV),并且当我在gdb 下运行时, 不会发生。我一般很少使用gdb或并行代码。我该如何调试这样的问题?使用gdb时会发生什么样的问题?


详细说明:

要使用gdb,我做了:

mpiexec -np 4 xterm -e gdb <PROGRAM>
然后打开了4个xterms,我在每个中都说run ......代码正常执行。刚跑,

mpiexec -np 4 <PROGRAM>

我得到了:

Program received signal SIGSEGV: Segmentation fault - invalid memory reference.

Backtrace for this error:

Program received signal SIGSEGV: Segmentation fault - invalid memory reference.

Backtrace for this error:
#0  0x113a1170d
#1  0x113a11c1b
#2  0x113edf5a9
#0  0x11122d70d
#1  0x11122dc1b
#2  0x1116d95a9
#3  0x10d1e9a44
#4  0x10d25c201
#5  0x10d1cb2ea
#6  0x10d1b3df4
#7  0x10d36e1f3
#3  0x10f9d4a44
#4  0x10fa47201
#5  0x10f9b62ea
#6  0x10f99edf4
#7  0x10fb591f3

我使用Makefile的预设'debug'选项编译:

FFLAGS_DEBUG = -ggdb -c -O0 -fdefault-real-8 -fdefault-double-8 \
-pedantic -Wall -Waliasing \
-Wsurprising -Wconversion -Wunderflow \
-ffpe-trap=invalid,zero,overflow -fbounds-check \
-fimplicit-none -fstack-protector-all

0 个答案:

没有答案