ifort
mpi 環境でintel fortran コンパイラ ( ) を使用しています。flags を指定してコンパイルすると、コードにバッファ オーバーフローが発生することが判明しました-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
これは素晴らしいことです。オーバーランしていることはわかりましたXX
が、どこでしょうか? を使用するとgfortran
、-fbounds-check
ファイルと行番号が表示されます。それを得る方法はありますifort
か?