[vz-dev] 1wirevz Segmentation fault

Thorben Thuermer r00t at constancy.org
Wed Sep 4 15:44:17 CEST 2013


On Wed, 04 Sep 2013 15:12:59 +0200
Andreas Brus <andreas at brus.name> wrote:
> Super, vielen Dank für den Hinweis. Nach etwas Frustration:
> (gdb) set follow-fork-mode child
> (gdb) set detach-on-fork off

habe ich noch nie gebraucht, defaults waren bei mir immer ok.

> (gdb) run
> hats dann gebracht:
[...]
> #3  0xb6e6ed80 in sprintf () from /lib/arm-linux-gnueabihf/libc.so.6
> No symbol table info available.

also genau wie vermutet...

> #4  0x00009d6c in http_post (temp=63.875, vzuuid=0x13a54 
> "589a4a00-fe87-11e2-8991-e7a40a5b0f79") at 1wirevz.c:296
>          curl = 0x9100
>          curl_res = 88648

es ist noch hilfreich, wenn du den sourcecode zu dem binary noch auf dem
system an der gleichen stelle liegen hast, dann bekommst du die codezeilen
angezeigt.
die relevante zeile ist halt:
270     sprintf ( url, "http://%s:%d/%s/data/%s.json?value=%.2f", vzserver, vzport, vzpath, vzuuid, temp );

irgendeine der variablen wird vermutlich einfach null sein.
die uuid ist ok wie wir im aufruf sehen, die anderen scheinen eher
unverdaechtig, aber sollte man wohl mal pruefen.

du solltest die werte der variablen einfach mit
(gdb) print vzserver
usw. ausgeben lassen koennen.
(ggfs. erst in gdb solange "up" (einen stack-frame nach oben) ein,
 bis du in der richtigen funktion bist, aber das sind ja wohl eh globale
 variablen?)

wenn wir wissen welche, koennen wir dann weitersuchen warum sie nicht korrekt
gesetzt ist.

> Ich kann daraus aber keinen Zusammenhang mit der einen hinzugefügten 
> Zeile in der Konfig erkennen.
> Ohne Konfig für den neuen Sensor läuft der Daemon problemlos.

wenn's offensichtlich waehre, waer's ja langweilig ;)

> Aktuellste Version gerade nochmal per git aktualisiert.
> > wo vermutlich einer der parameter von sprintf(), zeile 270, ungueltig ist...
> > ich wuerde raten, dass vzuuid durch einen bug im config-parser ungueltig ist,
> > deine config hast du aber leider nicht mitgeschickt.
> nach den verschiedenen Tests ist es egal wo die neue Zeile eingefügt wird.
> Oben, unten, in der Mitte der config.
> Und ich habe schon mehrere verschiedenen vzuuids versucht. -> kein 
> Unterschied.

wie ich sagte, ist der bug erstmal nicht in deiner config,
sondern im parser der die config liest,
der sollte sich beschweren, wenn die config falsch ist,
anstatt das spaeter das programm abstuerzt.

> Inklusive dem Neuen wären es 14 Sensoren an allen drei Bussen.
> Und verschiedene Kommentare eingefügt oder rausgelöscht und keinen 
> Unterschied festgestellt.
> Config ungern über die Liste, aber auf Wunsch gerne per PM.
>
> Vielen Dank
> Gruß Andreas

- Thorben


More information about the volkszaehler-dev mailing list