我在执行目标文件(例如signaled with Segmentation fault
)时得到aaa
,该文件是通过链接.o
和C
的多个.o
文件生成的来自Fortran 90
的文件。编译和链接过程中未报告任何错误。执行时,错误消息如下:
[0]0:Return code = 0, signaled with Segmentation fault
从索引[0]0
到[0]15
以及[0]16
到[0]31
相同,它说:
[0]16:Return code = 0, signaled with Interrupt
我发现计算崩溃后我得到了一个额外的core
文件。我试着用
gdb aaa
它说
This GDB was configured as "x86_64-suse-linux".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /mydirectory/aaa...done.
(gdb)
很长一段时间没有响应,我按了ctrl+d
gdb aaa core
然后提示
Reading symbols from /mydirectory/aaa ...done.
"/mydirectory/core" is not a core dump: File format not recognized
(gdb)
我按ctrl+d
停止并输入:
file core
它说
core: ELF 64-bit LSB core file x86-64, version 1 (SYSV)
接下来我该怎么办?
我在一个Linux (Suse)
集群上工作,总共使用了120个核心。
我使用mpich
以并行模式运行代码,在搜索某些gdb
解决方案时,人们说gdb
是gcc debugger
,而mpi
一个人需要TotalView
,但似乎TotalView
适用于openmpi
并且对mpich
编译器没有任何说明。有没有其他方法可以解决这个问题?
我makefile
的部分内容:
##target:
aaa: $(OBJ)
$(CC) $(OBJ) $(LDFLAGS) $(LFFLAGS) -o $@
.c.o:
$(CC) $(CFLAGS) $(INCLUDE_DIRS) $<
%.o: %.f90
$(F90C) $(F90F) $(FFLAGS) $(INCLUDE_DIRS) $<
@echo
CC
是mpich
编译器(并行)
F90C
为gfortran