Gcc 是否获取所有fortran浮点proint错误(FPE)警告的列表?

Gcc 是否获取所有fortran浮点proint错误(FPE)警告的列表?,gcc,floating-point,fortran,gfortran,gcc-warning,Gcc,Floating Point,Fortran,Gfortran,Gcc Warning,我试图在linux机器上编译和运行一些遗留的fortran代码。在跑步结束时,它说: 注意:以下浮点异常是信令:IEEE\u无效\u标志IEEE\u除以\u 0 我理解这些都是警告(见)。我的问题是:有没有一种简单的方法来获取这些警告产生的所有代码行号?如果我使用“-ffpe trap”选项将这些警告更改为SIGFPE信号,那么我只得到第一个实例(程序退出) 我想要一个实例列表(代码中的行): 代码文件1.f:65(除以零) 代码\文件2.f:92(无效标志) 。。。(etc)正常运行时,该信息

我试图在linux机器上编译和运行一些遗留的fortran代码。在跑步结束时,它说:

注意:以下浮点异常是信令:IEEE\u无效\u标志IEEE\u除以\u 0

我理解这些都是警告(见)。我的问题是:有没有一种简单的方法来获取这些警告产生的所有代码行号?如果我使用“-ffpe trap”选项将这些警告更改为SIGFPE信号,那么我只得到第一个实例(程序退出)

我想要一个实例列表(代码中的行):

代码文件1.f:65(除以零)

代码\文件2.f:92(无效标志)


。。。(etc)

正常运行时,该信息不可用。该消息只是告诉您它当前正在发送信号。编译器没有更多信息。也许是某个专用调试器。嗨,Vladimir,从我上面给出的链接中,您可以看到fortran“2008标准要求执行STOP和ERROR STOP语句时输出当前发出FP异常信号的列表”。由此,我推断,在代码运行期间,有一个或多个这样的异常发出了信号。操作系统保存了一个列表,并在最后打印出该列表的摘要。我的问题是,是否有可能得到所有发出信号的代码行。因此,我可以了解纠正所有这些错误所需的工作,并更好地与代码开发人员沟通。我告诉过你,不,编译器没有这些信息。你必须找到一些能够做到这一点的特殊软件。我不是这里的专家,但我的理解是,通常情况下,我们所知道的只是是否引发了异常——异常是否引发了1次、2次或42次没有区别,我们所知道的只是它是否引发了异常。因此,正如Vladimir所说,除了您在这里使用的工具之外,您还需要一些工具—要么让编译器生成在出现不希望出现的异常时停止的代码,并以增量方式修复它们,要么使用调试器执行类似操作,否则可能还有一些我不知道的事情。要添加到前面的注释中,终止时,如果终止时存在信号异常,编译器将打印警告。编译器不需要跟踪异常发生的时间(尽管如果异常本身导致终止,这是很重要的),也不需要注意异常是否提前发出信号,但在终止时停止发出信号。