为什么gfortran / gdb在调试时产生不同的数值结果而不是?

时间:2017-02-23 10:23:45

标签: debugging fortran gdb gfortran

我正在使用Code :: Blocks编译gfortran的一些数字代码。我有两个版本的可执行文件:Debug和Release。

  • 调试编译标志:-Jobj\Debug\ -Wall -g -c
  • 发布编译标记:-Jobj\Release\ -Wall -O2 -c
  • gdb invokation flags:-nx -fullname -quiet -args

当我正常运行代码时,Release和Debug可执行文件都会产生相同的输出。但是,当我在gdb中运行代码时,输​​出是不同的。这似乎是由于数值计算在执行过程中产生了不同的结果。

例如,在gdb中运行时的一次计算结果为7.93941842553643E-06,正常运行时为1.71006041855278E-03。更奇怪的是,一些非零结果在双精度精度内是相同的。

使用gdb运行时,如何确保输出相同?使用gdb时默认使用不同类型的数值计算或评估吗?

0 个答案:

没有答案