Mail Archives: djgpp/1998/06/19/12:50:13
> > > My Allegro based program crash when running under DOS+CWSDPMI. It works
> > > fine under Win95 and seem to be bug free (a bad pointer reference should
> > > produce some strange effect either unser Win95).
> >
> > No, Windows 95 doesn't catch null pointer dereferences, so it lets your
> > program run. But CWSDPMI catches such atrocities and aborts your
> > program.
> >
> > > Symify report a page fault at line 572 lwp.c.
> > >
> > > Any ideas ?
> >
> > I have an idea: debug your program starting at line lwp.c. You have a
> > bug.
>
> Send me your copy of lwp.c and I try to help you (I don't know which version
> of LWP are you runnig).
> BTW, from my expirience with LWP such things happens then you write behind
> allocated lwp-stack.
> For example, you run self-recurrent function, or call too many sub-functions
> with large number of parameters.
> So, first suggestion - increase stack size then you do lwp_spawn(...) and see
> what changes.
>
You can't really trust the call traceback when using LWP (only the
actual place that crashed) since a task switch could have made the rest of
the stack trace invalid.
You need at least an 8k stack (the example programs are wrong) to use
printf() in a thread. You get all kinds of strange behavior from stack
overflows, so eliminate that possibility first.
Josh
- Raw text -