强制gfortran在第一个NaN处停止程序
要调试我的应用程序(fortran 90),我想将所有NaN转换为发信号通知NaN。
使用默认设置,我的程序可以在没有任何信号的情况下运行,并且仅在文件中输出NaN数据。我想找到生成NaN的地步。如果我可以用NaN信号重新编译程序,那么我将在第一个错误的浮点运算所处的第一点得到一个“ 0”信号。
没有找到相关结果
已邀请:
1 个回复
磐乓铝举
;我通常加2来检查相关的浮点异常。
然后对其进行编译并在调试器中运行,将得到:
对于intel fortran编译器(ifort),使用选项
将执行相同的操作。 使用C / C ++代码有点麻烦。我们实际上必须插入对
的调用,这会启用浮点异常,并在
中定义;
但是效果是一样的:
无论哪种方式,您都可以更好地处理发生错误的位置。