我使用gfortran的一些代码。一段时间以来,我一直在编译gfortran警告浮点异常
-ffpe-trap=zero,overflow,invalid
试图追捕一些错误。这会导致我的程序立即停止执行。在某些情况下,FPE可能正常,因此一个标志如下:
-ffpe-warn=zero,overflow,invalid
将会非常有用。 gfortran(或任何其他编译器)提供这样的东西吗?如果没有,是否有任何解决方法?我目前的想法是创建一个C函数来注册一个信号处理程序来写出警告,但我不知道该怎么做。
这个推定的运行时警告机制将如何工作? – 2012-04-18 13:50:04
gfortran是否提供了(相对较新的)ieee_arithmetic内在模块?如果是这样,那会给你提供你在Fortran中做自己的f-p'错误'陷阱所需的工具。 – 2012-04-18 13:55:04
@DavidHefferman当引发运行时异常时,执行停止,将打印一条消息,指出发生异常的位置并退出程序。我只是想知道何时/何地发生了异常(向stderr发送消息?)并允许执行继续。也许这是不可能的......我不太了解这些东西是如何工作的...... – mgilson 2012-04-18 13:56:08