- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page