Xref: news-dnh.mv.net comp.os.msdos.djgpp:3149 Path: news-dnh.mv.net!mv!news.sprintlink.net!newsfeed.internetmci.com!news.sesqui.net!rice!news!sandmann From: Charles Sandmann Newsgroups: comp.os.msdos.djgpp Subject: Re: FInding when an address is illegal Date: Thu, 09 Nov 1995 16:48:58 CST Organization: Rice University, Houston, Texas Lines: 17 References: Reply-To: sandmann AT clio DOT rice DOT edu Nntp-Posting-Host: clio.rice.edu To: djgpp AT sun DOT soe DOT clarkson DOT edu Dj-Gateway: from newsgroup comp.os.msdos.djgpp > just now, they both ran through without faulting. Why? I expect it depends on if you are running under DPMI or not. V1.x without DPMI catches and faults addresses less than 4096, but does not signal an error with DPMI. V2.x (which is DPMI only) will catch and fault addresses less than 4096 if you are running under a DPMI with DPMI 1.0 extensions (ie CWSDPMI or 386MAX 7) - unless you set a flag to allow these accesses. Under Windows and most other DPMI providers you will not catch these addresses. > (3) If the variable `p' contains a Gnu C/C++ pointer value, how can the > program find whether it is a valid address WITHOUT causing an error exit? That's not an easy question, since you can set the protection on pages to cause faults, and also set the limits on descriptors to cause faults. It's probably easier to just handle it with signals.