Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

Bounds checking with GDB


Here are my compiler flags

ifort -qopenmp

-g -m64 -fpp -O0 -debug all -check bounds -check uninit -traceback -g 


While running this under gdb I see this error

forrtl: severe (408): fort: (2): Subscript #1 of the array NODES has value 10 which is greater than the upper bound..


I am seeing bounds errors listed, but I can't get GDB to break on the bounds error. Is there a symbol I can use to break on for a bounds error check? Or can a bounds error spit a backtrace out? so I can figure which line its coming from.


My guess is its coming from a statement like this (sorry for the formatting..)


queue(q_b1, i)%nodes(j)%count


Here is a BHNode


    type :: BHNode                                                                                                  |                                                                                                                    

       integer :: count                                                                                             |                                                                                                                    

       integer,pointer,dimension(:) :: indices                                                                      |                                                                                                                    

       type(Vec3) :: min,max                                                                                        |                                                                                                                    

       type(Vec3) :: pos,vel,acc                                                                                    |                                                                                                                    

       type(BHNode),pointer :: parent                                                                               |                                                                                                                    

       type(BHNode),pointer,dimension(:) :: nodes                                                                   |                                                                                                                    

    end type BHNode                                                                                                 |                                                                                                                    

Where queue is defined


    type(BHNode),pointer,dimension(:,:) :: queue, temp_queue                                                        |                                                                                                                    






0 Kudos
0 Replies