Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!

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