From: Eli Zaretskii Newsgroups: comp.os.msdos.programmer,comp.os.msdos.djgpp Subject: Re: WARNING: DOS is about to die. Date: Tue, 14 Sep 1999 10:57:40 +0200 Organization: NetVision Israel Lines: 21 Message-ID: References: <7quo1t$94k$1 AT solomon DOT cs DOT rose-hulman DOT edu> <37D2EEE8 DOT CF27908C AT a DOT crl DOT com> <37D34350 DOT 2F2EE49B AT videotron DOT ca> <37D3456E DOT 448F01AF AT aol DOT com> <37D3D2E6 DOT 660F1586 AT unb DOT ca> <7rjobv$42a$1 AT ash DOT prod DOT itd DOT earthlink DOT net> NNTP-Posting-Host: is.elta.co.il Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Trace: news.netvision.net.il 937299389 12230 199.203.121.2 (14 Sep 1999 08:56:29 GMT) X-Complaints-To: abuse AT netvision DOT net DOT il NNTP-Posting-Date: 14 Sep 1999 08:56:29 GMT X-Sender: eliz AT is In-Reply-To: <7rjobv$42a$1@ash.prod.itd.earthlink.net> To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com X-Mailing-List: djgpp AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk On 13 Sep 1999, Steve Mentzer wrote: > >For example, did you know you cannot catch SIGINT and SIGFPE on NT? If > >you do, your program crashes, and the DrWatson log file clearly shows > >that it's an NT bug. > > And you shouldn't be able to... The only thing that should be handling > interrupts are kernel-mode device drivers, not user mode applications. If that would be the reason, then I'd at least understand it. But the reality doesn't fit into the above theory: NT *does* let you catch hardware interrupts. What causes the crashes is that NT apparently uses the application's stack to perform some of its chores when an application triggers an exception (such as GPF), e.g. by accessing an invalid address. And that's a no-no, since one of the reasons for a GPF is that the data/stack segment is invalid. DJGPP supports signals by converting an interrupt into an exception, by invalidating the DS selector. And this is why the program crashes on NT.