Date: Fri, 13 Oct 2000 13:25:03 +0200 From: "Eli Zaretskii" Sender: halo1 AT zahav DOT net DOT il To: Corelli Marco Message-Id: <8011-Fri13Oct2000132503+0300-eliz@is.elta.co.il> X-Mailer: Emacs 20.6 (via feedmail 8.3.emacs20_6 I) and Blat ver 1.8.5h CC: djgpp AT delorie DOT com In-reply-to: <39E6C1EB.58AED5F3@gtwparc.padova.ccr.it> (message from Corelli Marco on Fri, 13 Oct 2000 10:03:55 +0200) Subject: Re: Accesing from 0xFFFF:F000 to 0xFFFF:FFFF physical memory address References: <39E5E00A DOT 39A80E46 AT gtwparc DOT padova DOT ccr DOT it> <7263-Thu12Oct2000193356+0300-eliz AT is DOT elta DOT co DOT il> <39E6C1EB DOT 58AED5F3 AT gtwparc DOT padova DOT ccr DOT it> Reply-To: djgpp AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk > From: Corelli Marco > Newsgroups: comp.os.msdos.djgpp > Date: Fri, 13 Oct 2000 10:03:55 +0200 > > this messagge appear: There are several strange things about this crash message (see below). Is it possible that you've typed the message by hand, instead of saving it to a file, or copy/paste it from the DOS box? If so, please post here the *exact* message text, because any typos can totally change its meaning. > ----------------------------- > Exiting due to signal SIGSEV > Page fault at eip=00003cda, error=0004 > eax=000000c7 ebx=00010000 exc=00000000 edx=00000000 esi=00000054 ^^^ This should have been ECX, not EXC. Also, the EDI regiser is missing. > edp=00091ba8 esp=00091ba8 program=xxxx ^^^ This should have been EBP, not EDP. In addition, usually EBP and ESP have different values, but perhaps that, too, is a typo. > cs : sel=00a7 base=10000000 limit=0009ffff > ds : sel=00a7 base=10000000 limit=0009ffff This shows that DS and CS are loaded with the same selector! This simply cannot happen, because protected mode doesn't allow to use a data segment for code and vice versa. Another typo? > es : sel=00c7 base=10000000 limit=0009ffff The value of ES should usually be the same as DS and SS. Are you sure you really saw 00c7? (That's not even a valid selector for a data segment.) > fs : sel=00a7 base=ffff0000 limit=0000ffff This is the strangest thing of all: FS is loaded with the same value as DS/CS. Since you told that the program crashes inside the call to _farpeekb, FS should be loaded with the selector created by selector_physical_address, which should normally be different from DS. Are you sure the above line is accurate? If the FS line is accurate, it means that somehow you've changed the base address and the limit of your DS selector, which certainly would cause the program to crash. However, the values printed for DS (above) are different, so it's probably another typo. > gs : sel=00bf base=00000000 limit=0010ffff > ss : sel=00af base=10000000 limit=0009ffff There's the stack limits data missing here. Are you using DJGPP v2.01? If so, please upgrade. > call frame traceback EIPc: > 0x00003cda > 0x00001c4d > 0x00001906 > 0x00003512 I asked to run the SYMIFY utility on this traceback, so that will show where exactly in your code does the program crash. Without the output of SYMIFY, this traceback is useless. (If you don't know what SYMIFY is and how to use it, please see section 9.3 of the DJGPP FAQ list.) To summarize: please post an exact text of a crash message, without any typos, after running SYMIFY on it, and identify the source line that corresponds to the topmost EIP address (0x00003cda in the above message). Without that, it's impossible to help you solve your problem.