Re: EU 3.0.1 -- there's probably a bug in there somewhere
- Posted by Robert Craig <rds at RapidEuphoria.com> Feb 02, 2007
- 674 views
Pete Lomax wrote: > > Matt Lewis wrote: > > Here's some simpler code that causes a crash. > Confirmed here too, on 3.0.0 but not 2.4, 2.5, or cb-3.0.1. > > However, after rebuilding from source, I wasn't getting the crash > No way to know if a source mod fixes it then... > > I had a quick hack and it appears to be crashing on my system in routine > restore_privates, > in the code: > > // restore the current task's private data (will always be there) > > block = load_private_block(this_routine, current_task); > > // private vars > sym = this_routine->next; > while (sym != NULL && sym->scope <= S_PRIVATE) { > sym->obj = *block++; > sym = sym->next; > } > > it crashes on the sym->obj = *block statement. A chunk of heap ends at > #004D5FFF > and when it crashes block is #004D6000. sym is correctly pointing at the > parameter > r. I have not studied load/save_private_block, but that is where my suspicions > would lie. A random thought I had is that if it were saving and loading > everything > out-by-one, it might well appear to work fine in 99.9% of cases. Or maybe not. Thanks to everyone for helping pin this down. I'll be able to look at this later today (in a few hours). As you sugggest, it could be that I'm allocating slightly less memory than I need in some cases. That would cause occasional crashes that might go away with just a trivial change in the user's program. Thanks, Rob Craig Rapid Deployment Software http://www.RapidEuphoria.com