[Lcdproc] Segfault on VIA EPIA CN10000EG Fanless with picolcd

Peter Marschall peter@adpm.de
Sat Jul 28 14:15:02 2007


Hi Bas,

On Monday, 16. July 2007 20:09, Bas Rijniersce wrote:
> > > I ran configure with the following options:
> > > ./configure --enable-driver=picolcd --build=i386 --host=i386
> >
> > Please compile and run a debug version CVS version again like so:
> >   ./configure --enable-debug --enable-driver=picolcd
> >   make
> >   gdb ./server/LCDd
> >
> >   > set args -c <path to config> -f
> >   > run
> >
> >   (wait for segfault)
> >
> >   > bt full
>
> Unfortunately the latest CVS doesn't compile with --enable-debug.
> Problem with a Crytal Fontz driver. I compiled without --enable-debug
> and get:

Please try again with the command line
	./configure --enable-debug --enable-drivers=picolcd
Note the 's' at the end of '--enable-drivers'.

This should allow to build lcdproc with the picolcd driver only
in debug mode (and thus avoid the problem with the CFontz633io.c file)

> I also compiled the current production release with --enable-debug and
> that provides this bit of additional info:
>
> #10 0x0805669a in driver_bind_module (driver=0x9ef5a00) at driver.c:179
>         i = 34
>         missing_symbols = 0
> ---Type <return> to continue, or q <return> to quit---
>         __FUNCTION__ = "driver_bind_module"
> #11 0x080564db in driver_load (name=0x9eed108 "picolcd",
>     filename=0x9ef59d8 "/usr/local/lib/lcdproc/picolcd.so") at
> driver.c:110
>         driver = (Driver *) 0x9ef5a00
>         res = Variable "res" is not available.
>
> So it seems clear that the picolcd driver load causes the problem.. To
> verify I loaded the curses driver and that worked fine.

That's a starting point for a search.
Unfortunately the picoLCD_init() routine does - at a cursory glance - not seem 
to be problematic with respect to SIGFPE.

Would you mind to try single stepping through this function using gdb ?

Peter
-- 
Peter Marschall
peter@adpm.de