【问题标题】:SIGFPE: Floating-point exception backtrace for this error: 0x7F70C71AF7D7SIGFPE:此错误的浮点异常回溯:0x7F70C71AF7D7
【发布时间】:2015-02-17 08:51:28
【问题描述】:

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

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

谁能解释一下这些回溯代码的含义?我该如何处理这些错误?

【问题讨论】:

  • 这些数字是一些堆栈展开过程在堆栈上找到的指令指针的值。您可能(也可能不)能够通过addr2line 向它们提供函数名称和行号。
  • 我试过 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。有没有其他方法来处理这个错误?

标签: floating-point fortran gfortran


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    我在编译 Fortran95 代码时遇到了同样的错误。 就我而言,我只是调试了我的代码。有一个错误的数学运算(除以零)。一旦我修复它,编译错误就消失了。 尝试检查您的代码是否存在数学错误。 希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-28
      相关资源
      最近更新 更多