_check_range_exit

_check_range_exit

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

2 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

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

Leave a Comment

Please sign in to add a comment. Not a member? Join today