[GRASS5] Driver Update
Malcolm Blue
mblue at nb.sympatico.ca
Sun Apr 22 01:43:30 EDT 2001
Glynn,
First, I can tell you that it is the XDRIVER program that is crashing. Second, it
seems to be in the initial communication from the select command.
Also, I had created a whole new grass directory structure, so there is no conflict of
old and new programs or libs.
So far I've determined that the problem is in
R_open_driver() in select.c,
sync_driver() in io.c,
read() call in sync_driver().
I had tested the reverse of your suggestion. I tried the old XDRIVER executable with
the new build. That had the same result as before, so I thought it was in io.c. That's
why I tracked the problem down to the first read() in the sync function. So after
that, I started looking for mismatches between the routines. I haven't found any.
After reading your response, I tried replacing io.c and rebuilding rasterlib &
mon.select. That had the same result as before.
The monitor (XDRIVER) is running until I do the select with any of these combinations.
Were there other changes that I can look at? Did you change any of the sockets calls,
or just where thay are called from?
I'm also going to reinstall my lat bindist to make sure that this isn't something I've
caused separately from your fixes.
Malcolm
Hopefully we'll know soon.
Thanks,
Malcolm
Glynn Clements wrote:
> Malcolm Blue wrote:
>
> > On first try with the new drivers on Cygwin, I get an access violation during
> > "d.mon x0" or "d.mon select=x0". The monitor starts if I do "d.mon -s start=x0",
> > but then crashes on "d.mon select=x0".
>
> Is there anything to indicate whether it's the monitor (XDRIVER) or
> d.mon/mon.select that's crashing?
>
> > In my initial look at the code, I noticed that for libes/raster/io.c outbuf was
> > defined as 2048 (BUFFERSIZ), while in display/devices/lib/connect.c inbuf is set
> > to 4096. I changed inbuf to 2048 and recompiled in display/devices/lib and
> > display/devices/XDRIVER, but still got the same error.
> >
> > I'll look a little more to see if I can see where the error is coming from (but
> > debugging on Cygwin is tedious at best - and only for console apps). From my
> > experience, access violations come from initialized variables or array/struct
> > overflows. Any idea where I should look first?
>
> The first thing is to determine which program is crashing.
>
> If it's mon.select, try checking out the old version of
> src/libes/raster/io.c (use the "devices_cleanup_20000420" tag). If
> that fixes it, the problem lies there. If it doesn't, or if it's
> XDRIVER which is crashing, there are more files to consider.
>
> A couple of questions: First, did you delete the old driverlib.a
> libraries? Just doing "cvs update ; make" will have problems. Second,
> were there any warnings relating to src/display/devices/*?
>
> --
> Glynn Clements <glynn.clements at virgin.net>
>
> ----------------------------------------
> If you want to unsubscribe from GRASS Development Team mailing list write to:
> minordomo at geog.uni-hannover.de with
> subject 'unsubscribe grass5'
----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo at geog.uni-hannover.de with
subject 'unsubscribe grass5'
More information about the grass-dev
mailing list