SIGFPE:浮点异常。此错误的回溯信息为:0x7F70C71AF7D7。

9

我在Ubuntu 14.04下使用Fortran 90模型。通过Ubuntu软件中心安装了gfortran 95编译器(gfortran 4:4.8.2-1ubuntu6)和gcc 4:4.8.2-1ubuntu6。运行模型后,出现以下错误信息:

Program received signal SIGFPE: Floating-point exception - erroneous arithmetic operation.
Backtrace for this error:
#0  0x7F70C71AF7D7
#1  0x7F70C71AFDDE
#2  0x7F70C68EAD3F
#3  0x7F70C6EB6913

请问有人能够解释一下这些回溯代码的含义吗?我该如何处理这些错误?


这些数字是一些堆栈展开过程在堆栈中找到的指令指针的值。您可以(或者不可以)通过addr2line将它们输入,以便从中获取函数名称和行号。 - tmyklebu
我尝试使用addr2line和gdb获取函数名称和行号,但都没有找到它。(gdb) info symbol 0x7F2B31E0D7D7 No symbol matches 0x7F2B31E0D7D7gdb) info line *0x7F2B31E0D7D7 No line number information available for address 0x7f2b31e0d7d7addr2line -e KiD_SC_2D.exe 0x7F2B31E0D7D7 ??:0。有没有其他方法来处理这个错误? - Beata
2个回答

9

在编译时使用选项-O -Wall -fcheck=all -g -fbacktrace,并运行可执行文件。如果这不能提供必要的信息,请尝试在gdb和/或valgrind下运行程序。


1

我曾经遇到过相同的错误,当我编译Fortran95代码时。 在我的情况下,我只是调试了我的代码。有一个错误的数学运算(除以零)。一旦我修复了它,编译错误就消失了。 尝试检查您的代码是否存在数学错误。 希望这可以帮助你。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接