delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1996/07/06/19:15:08

Xref: news2.mv.net comp.os.msdos.djgpp:5705
From: Charles Sandmann <sandmann AT clio DOT rice DOT edu>
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.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019