RE: EXW Crashes!
- Posted by Andy Drummond <kestrelandy at xalt.co.uk> May 02, 2001
- 532 views
Yep, Kat, you have it. My program was calling code after the memory had been de-allocated! So with a catch-all around it with a flag telling me if it has been set or freed I avoid that. Sorry I blamed EXW!! Mea culpa,... Andy. Kat wrote: > On 28 Apr 2001, at 7:59, Derek Parnell wrote: > > > > > > ----- Original Message ----- > > From: "Andy Drummond" <kestrelandy at xalt.co.uk> > > To: "EUforum" <EUforum at topica.com> > > Sent: Friday, April 27, 2001 11:39 PM > > Subject: EXW Crashes! > > > > > > > The first is that when I get an error with sequence subscripts out of > > > range - like reading 20th element of a sequence of length 19 - I don't > > > get a ex.err file generated. This is particularly annoying as the > > > DOS-style dump is just not enough lines to show the place where the > > > error occurred. Any ideas? > > > > Forgive my abruptness but can you prove this assertion? For example: > > > > sequence x x = repeat(0,19) > > x[20] = 1 > > > > Does this fail or succeed? > > > > > The second is worse. The advertising for Euphoria tells me it won't > > > crash and when it finds a fault it will produce a meaningful message. > > > Not so. I keep getting errors with EXW trying to access 0xffffffff, > > > which the OS doesn't care for. The "details" from the Win98 crash > > > message is as follows. Should it go to RDS do you think? > > > > > This sounds like you have an atom with the value of -1 and are using > > that as an > > address. eg. > > atom memadr > > > > memadr = -1 > > poke (memadr, 0) > > > > Can I suggest that if you are using poke() anywhere, that you surround > > this with > > trace(1) statements and trace the code execution. If you are not using > > poke(), > > then you can send the code directly to me and I'll try to locate the > > error for > > you. > > Or, if there are too many, or it runs too fast, preceed the poke()s with > > puts(1,somelinenumber&" "&address&" "&data&"\n\n") > ( might need some sprintf()s in there ) <snip>