Date: Tue, 19 Oct 1999 18:55:37 +0100 (MET) From: Gisle Vanem To: djgpp AT delorie DOT com Subject: Re: far call Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Reply-To: djgpp AT delorie DOT com Eli Zaretskii said: > > Exiting due to signal SIGSEGV > > General Protection Fault at eip=00001dcc, error=01d4 > > If a program crashes with a GPF, and the crash message includes an error > code, then the error code is actually the value of a selector that your > program tried to load into one of the segment registered, and the > selector turned out to be invalid. > > So in this case, you are trying to use a selector 0x1d4, which is indeed > invalid (it's not ring-3 selector). OTOH, the error code doesn't include the ring-level. But, thanks for the tip. I completely overlooked that error-code. >> Maybe I need to modify the selector for 'execute' ? (don't think so) > > I think you do need that. In which case you will have to define two > selectors: one for data, another for code, with the same base address > and limit, but different descriptors. (DJGPP does exactly that for CS > and DS, btw.) Bingo, changing the access-reight (ORing with 8) did the trick. A "fresh" descriptor seems to only have Read/Write access. Everything works now, thanks alot! Gisle V.