Message-Id: <199806191649.AA10176@gcef.gc.maricopa.edu> Date: Fri, 19 Jun 1998 09:49:16 -0700 (MST) From: "Joshua James Turpen" <44699 AT ef DOT gc DOT maricopa DOT edu> To: djgpp AT delorie DOT com Subject: Re: Allegro + LWP Precedence: bulk > > > 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