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

_check_range_exit

john_keenan
Beginner
771 Views

I have also posted this to newsgroup comp.os.ms-windows.programmer.win32.

An application of mine is generating a floating overflow. It entails a Microsoft Visual C++ 6.0 main program calling a Microsoft Visual C++ 6.0 dll, which in turn calls an Intel Visual Fortran 9.?dll. However the stack shows:

KERNEL32! 7c59bcb1
MSVCRTD! _raise_exe
MSVCRTD! _87except
MSVCRTD! _startOneArgErrorHandling
MSVCRTD! _check_range_exit
myCpp::method (main program)

myCpp::method calls methods that perform floating point operations but does not do any itself. Under Debug > exceptions... I have selected "stop always" for everything. But with both debug and release version the stack is not showing the location of the exception. I get the same results launching the application from the Fortran dll project. I do not find any mention of _check_range_exit on google or groups.google. What exactly is this stack telling me? How do I get the point of the exception to appear in the debugger?

John

0 Kudos
1 Reply
john_keenan
Beginner
771 Views

I had assummed the problem was in the Fortran dll because it is a solver. However, through some testing I narrowed the problem to the middle C++ dll pow function. I temporarily created a pow3 function that called a pow2 fuction that called a pow1 function that called the pow function. This allowed me to see stack and immediately identify the problem.

I have no idea why the pow function would unwind a couple frames off the stack before throwing the exception.

John

0 Kudos
Reply