Exception Problems

I have some code (>100,000 lines) that occasionally throughs up the following error on a NT 3.51 (SP5) system.

myapp.exe - Application Error
Exception Unknown - software exception (0xC000008) occured in the application at location 0x77FC02CD.

The location is in NTDLL.DLL, and the exception (0xC0000008) indicates that an invalid handle has been referenced.

My problem is that when this popup box appears, there is no option to debug (only option in OK), even though I have setup the system debugber option in AEDebug registry key. Other exceptions on this system do allow you to debug.

So, my questions are :-
1) Why no CANCEL option, so that I can debug (or capture Dr Watson output)?
2) What can cause this error ? If I write a quick program that does a CloseHandle(0xabababab), then under the debugger this causes a First Chance exception that is handled (by NTDLL.DLL ?). So, when I run this normally, no exceptions are thrown.

Because this happens at random, involving thousands of executions of this application, I need some way of gathering a stack-back trace, or at least some indication of the type of scenario that could cause this.

gbmgeorAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

gwaltersCommented:
Select OK, then check out %SYSTEMROOT%\drwtsn32.log

0
gbmgeorAuthor Commented:
Dr Watson log is not generated when you click OK.
0
gwaltersCommented:
Were there any other log files in "c:\winnt\"?  

Please bear with me, what I told you worked in NT4.0; I don't know what differences there may be in 3.51.

Run drwtsn32.exe; it may have a different path set for the log file.


0
Tommy HuiEngineerCommented:
There are two functions to try using to catch this exception and hopefully at least have a call stack:

  _set_se_translator();
  SetUnhandledExceptionFilter();

Take a look at these functions in the online help and that should give you a good start on how to catch these types of unhandled problems.

This should at least give you the ability to set a breakpoint in the debugger.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
gbmgeorAuthor Commented:
Thui, I've looked into these in the past, but I was under the impression that the default behaviour would be the option to trigger the default system debugger. What I would really like are some scenarios that could cause this exception.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
C++

From novice to tech pro — start learning today.