Xref: news2.mv.net comp.os.msdos.djgpp:5705 From: Charles Sandmann Newsgroups: comp.os.msdos.djgpp Subject: Re: __djgpp_exception_state is protected? (raise problems) Date: Sat, 06 Jul 1996 16:50:26 CDT Organization: Rice University, Houston, Texas Lines: 16 Message-ID: <31dedfa2.sandmann@clio.rice.edu> References: <4r2j1h$lhe AT news1 DOT goodnet DOT com> Reply-To: sandmann AT clio DOT rice DOT edu NNTP-Posting-Host: clio.rice.edu To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp > I have no idea why, but for some reason, __djgpp_exception_state is > either undefined or protected in the first program. It works fine > in the second program. Is this due to the hw_interrupt reflection? __djgpp_exception_state is ONLY defined when you are in a REAL exception frame. Since you can have potentially nested exceptions, there is a linked list of them, which are unwound via longjmps. If there is any possibility of your routine being called by raise() in your code, you should check to see if the exception state pointer is NULL before using it. > A sample output would be that my_bufs flags = 3216 while the other flags > are 13216 or 13214. The difference here is the resume flag is set. I don't remember exactly in what cases this is needed, but I think it's a requirement to make the debuggers work.