[vz-dev] 1wirevz Segmentation fault
Thorben Thuermer
r00t at constancy.org
Tue Sep 3 00:53:28 CEST 2013
bei einem segfault hilf ein backtrace aus gdb
(und ein mit gcc -g3 kompiliertes binary)
deutlich besser als ein strace...
fuege einfach dem zeile gcc-aufruf beim kompilieren ein '-g3' hinzu,
und starte 1wirevz mit gdb statt strace, starten mit "run",
und dann "bt full" nach dem crash...
- T.
On Mon, 02 Sep 2013 23:10:49 +0200
Andreas Brus <andreas at brus.name> wrote:
> Ich habe heute einen zusätzlichen Sensor (als zweiten) an den dritten
> Bus angeschlossen.
> Der wurde auch erkannt.
> Und dann das:
> Wieder wie beim ersten Versuch...
>
> [pid 29460] open("/tmp/1wirevz.pid", O_RDWR|O_CREAT, 0600) = 0
> [pid 29460] fcntl64(0, F_SETLK, {type=F_WRLCK, whence=SEEK_CUR, start=0,
> len=0}) = 0
> [pid 29460] write(0, "29460\n", 6) = 6
rueckkehr aus daemonize()
hauptschleife in main()
> [pid 29460] open("/sys/bus/w1/devices/w1_bus_master1/w1_master_slaves",
> O_RDONLY) = 1
> [pid 29460] fstat64(1, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
> [pid ds1820read29460] mmap2(NULL, 4096, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fbe000
> [pid 29460] read(1, "10-000802558178\n28-000003c3d020\n"..., 4096) = 160
ds1820read()
> [pid 29460] open("/sys/bus/w1/devices/10-000802558178/w1_slave",
> O_RDONLY) = 2
> [pid 29460] fstat64(2, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
> [pid 29460] mmap2(NULL, 4096, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fbd000
> [pid 29460] read(2, <unfinished ...>
das ist nur ein ueberbleibsel des hauptprozesses aus deamonize()
> [pid 29459] write(1, "Child process created: 29460\n", 29) = 29
> [pid 29459] exit_group(0) = ?
> <... read resumed> "2f 00 4b 46 ff ff 04 10 35 : crc"..., 4096) = 75
> read(2, "", 4096) = 0
> close(2) = 0
> munmap(0xb6fbd000, 4096) = 0
das muesste das close() am ende von ds1820read() gewesen sein...
und jetzt sind wir dann wohl in http_post()
> --- SIGSEGV (Segmentation fault) @ 0 (0) ---
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.
More information about the volkszaehler-dev
mailing list