[vz-dev] 1wirevz Segmentation fault

Thorben Thuermer r00t at constancy.org
Thu Sep 5 03:24:07 CEST 2013


On Wed, 04 Sep 2013 23:32:02 +0200 Andreas Brus <andreas at brus.name> wrote:
> Die Variable geht schon innerhalb der Schleife beim dritten Durchlauf 
> kaputt:

das scheint dann ja dem zu kurzen array zu entsprechen.
die daten fuer den dritten sensor werden halt ueber das ende des array
hinaus in nicht dafuer reservierten speicher geschrieben.

hast du die vorgeschlagene aenderung (das array erstmal einfach auf
vier elemente vergroessern) ausprobiert?

- Thorben

On Wed, 04 Sep 2013 23:32:02 +0200 Andreas Brus <andreas at brus.name> wrote:
> (gdb) b ds1820init
> und dort vzpath pruefen,
> 
> noch ok.
> > und dann zumindest nochmal nach ds1820init()
> > (gdb) b main.c:358
> Da isses schon kaputt:
> Breakpoint 2, ds1820read (sensorid=0x12cdd "10-000802558178") at 
> 1wirevz.c:358
> 358                t = strndup ( temp_buffer +29, 5 ) ;

die zeilennummern unserer versionen passen ueberhaupt nicht zusammen,
und der breakpoint ist an der falschen stelle (andere funktion) gelandet,
sollte aber egal sein.

> (gdb) print vzpath
> $2 = 0x65383362 <Address 0x65383362 out of bounds>
> 
> Die Variable geht schon innerhalb der Schleife beim dritten Durchlauf 
> kaputt:
> 
> Breakpoint 2, ds1820init () at 1wirevz.c:286
> warning: Source file is more recent than executable.
> 286                fclose ( fp );
> (gdb) print vzpath
> $2 = 0x152e0 "vz/middleware.php"
> (gdb) c
> Continuing.
> 
> Breakpoint 2, ds1820init () at 1wirevz.c:286
> 286                fclose ( fp );
> (gdb) print vzpath
> $3 = 0x152e0 "vz/middleware.php"
> (gdb) c
> Continuing.
> 
> Breakpoint 2, ds1820init () at 1wirevz.c:286
> 286                fclose ( fp );
> (gdb) print vzpath
> $4 = 0x65383362 <Address 0x65383362 out of bounds>
> 


More information about the volkszaehler-dev mailing list