From: Joseph Morris Newsgroups: comp.os.msdos.djgpp Subject: Re: dead beef Date: Thu, 20 Apr 2000 20:00:38 +0100 Lines: 55 Message-ID: <38FF53D6.9F0D46EA@bigfoot.com> References: <38FE3710 DOT 57CEFA8C AT bigfoot DOT com> <200004200926 DOT FAA15727 AT indy DOT delorie DOT com> NNTP-Posting-Host: jpmorris.force9.co.uk (212.56.119.112) Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Trace: fu-berlin.de 956257221 8452532 212.56.119.112 (16 [28722]) X-Mailer: Mozilla 4.7 [en] (X11; I; Linux 2.2.14-15mdk i586) X-Accept-Language: en To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com Eli Zaretskii wrote: > > > OB_Check was called by check_object, which is a bridge between the VM and > > my functions in the 'real world'. > > > > check_object was called by callfunc, which is used by SEER to call > > 'real world' functions outside of VM-space > > > > All of which which suggests that the crash is happening inside the SEER > > library. > > The crash is indeed in a function called by SEER, but the important > question is: who is responsible for putting garbage on the object that > triggers this print-out? A common factor of the problem seems to be that it happens inside the VM, I have not yet had in incident outside of the VM-space, It seems that real-world functions which have an Object as their first parameter sometimes get a garbled pointer when called from VM-space. I recompiled SEER to use the portable method of calling real-world functions instead of the Intel-specific method and it hasn't had this problem since. > > > eax=00000001 ebx=00000000 ecx=00000073 edx=beefdead esi=ffffffff edi=00252d7c > > ebp=00251d08 esp=00250910 program=C:\IRE\IRE.EXE > > You edited out the first two lines of the crash message. What were > they saying? I don't know. I run in 25 line mode and they went out the top of the screen. > > > cs: sel=00a7 base=10000000 limit=010cffff > > ds: sel=00af base=10000000 limit=010cffff > > es: sel=00af base=10000000 limit=010cffff > > fs: sel=00c7 invalid > > gs: sel=00bf base=00000000 limit=0010ffff > > ss: sel=00af base=10000000 limit=010cffff > > Wow! The FS selector is invalid! Do you have any idea why? Does > SEER use the FS register? If so, you want to check your code to make > sure you don't use FS in a way that interferes with SEER's usage. I don't change the FS register in any of my code. SEER might but I haven't checked. Interestingly, if CTRL-BRK is pressed during startup, FS is sometimes flagged as invalid then as well. -- JP Morris - aka DOUG the Eagle (Dragon) -=UDIC=- DOUG-15 AT bigfoot DOT com Fun things to do with the Ultima games (http://ithe.cjb.net) Developing a U6/U7 clone (http://fly.to/ire) d+++ e+ N+ T++ Om U1234!56!7'!S'!8!9!KA u++ uC+++ uF+++ uG---- uLB---- uA--- nC+ nR---- nH+++ nP++ nI nPT nS nT wM- wC- y a(YEAR - 1976)