Re: Strange crash

new topic     » goto parent     » topic index » view thread      » older message » newer message

Matt Lewis writes:
> Have any ideas about what's causing it?  Oh, I can also stop the crash by
> changing the line to
>
> rect[3] += rect[1]
> rect[4] += rect[2]

There aren't any known bugs in the 
Euphoria interpreter run-time engine for 2.3.

The subscript statements above won't allocate any memory.
When you instead use a slice, memory might be allocated from
the heap. If the heap has been corrupted by earlier poke/poke4 etc.
statements, then a crash could happen.

I would very carefully check all the addresses that were passed in to
your routine, and all the pokes, making sure that enough memory
has been allocated in each case, and you aren't writing out-of-bounds.
Then I would look at any pokes etc that you did before the routine
was called. Be sure to use trace(3).

Memory corruption bugs can be a nightmare to solve.
The slightest change to your program can make the
bug appear or disappear. People end up believing
all sorts of superstitions - "the bug only happens on Tuesdays
when it's raining!". You shouldn't assume that the line it
crashes on is buggy. About all you can say is that the corruption
happened before this point.

It's too bad that euphoria\include\safe.e can't be used with Win32Lib.
I think it would be an excellent project for someone to
adapt safe.e to work with Win32Lib's storage allocator.

Regards,
   Rob Craig
   Rapid Deployment Software
   http://www.RapidEuphoria.com

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu