英特尔Fortran - 检查界限不提供行号

mgi*_*son 8 fortran command-line-arguments intel-fortran

ifort在mpi环境中使用intel fortran编译器().事实证明,当我使用标志编译时,我的代码有一个缓冲区溢出-g -O2 -check bounds.运行一段时间后,我收到此消息:

forrtl: severe (408): fort: (2): Subscript #1 of the array XX has value 4 which is greater than the upper bound of 3

Image            PC                Routine            Line        Source             
program.exe      00000000006E757E  Unknown               Unknown  Unknown
program.exe      00000000006E6016  Unknown               Unknown  Unknown
program.exe      00000000006905B2  Unknown               Unknown  Unknown
program.exe      0000000000642E6B  Unknown               Unknown  Unknown
program.exe      0000000000643381  Unknown               Unknown  Unknown
program.exe      00000000005F33FB  Unknown               Unknown  Unknown
program.exe      00000000004139E7  Unknown               Unknown  Unknown
program.exe      000000000040A6B4  Unknown               Unknown  Unknown
program.exe      0000000000409D2C  Unknown               Unknown  Unknown
libc.so.6        000000380D61ECDD  Unknown               Unknown  Unknown
program.exe      0000000000409C29  Unknown               Unknown  Unknown
Run Code Online (Sandbox Code Playgroud)

这太好了 - 我现在知道我超越了XX,但在哪里?使用gfortran,-fbounds-check会给我一个文件和行号.我有什么方法可以得到它ifort吗?

mil*_*cic 7

-traceback标志可以与Intel和波特兰集团Fortran编译器用于请求在对于线和源追踪对象文件将要产生的附加信息.当在运行时发生严重错误时,程序将尝试报告发生错误的行号和源文件,以及来自进行调用的父过程的行号和源文件.

gfortran的等效标志是-fbacktrace.