Hi Gary, Paul,
I realized that the build script still stripped debug info from the ncurses "dlls". I fixed this by rebuilding them yet again.
The latest backtrace can be found below:
tc://localhost:2947 JSON slave driver>
(111) {"class":"VERSION","release":"3.20.1~dev","rev":"release-3.20-433-ge897c3f63","proto_major":3,"proto_minor":14}
(256) {"class":"DEVICES","devices":[{"class":"DEVICE","path":"/dev/ttyAMA0","driver":"u-blox","subtype":"SW 7.03 (45969),HW 00040007","activated":"2020-04-11T17:08:57.240Z","flags":1,"native":1,"bps":9600,"parity":"N","stopbits":1,"cycle
":1.00,"mincycle":0.25}]}
(122) {"class":"WATCH","enable":true,"json":false,"nmea":false,"raw":2,"scaled":false,"timing":false,"split24":false,"pps":true}
Program received signal SIGSEGV, Segmentation fault.
0x76e5e1e0 in waddch_literal (ch=2097184, win=<optimized out>) at ../ncurses/./base/lib_addch.c:391
391 line->text[x++] = ch;
(gdb) list
386 });
387
388 /*
389 * Single-column characters.
390 */
391 line->text[x++] = ch;
392 /*
393 * This label is used only for wide-characters.
394 */
395 if_WIDEC(
(gdb) where
#0 0x76e5e1e0 in waddch_literal (ch=2097184, win=<optimized out>) at ../ncurses/./base/lib_addch.c:391
#1 waddch_nosync (ch=32, win=0x153330) at ../ncurses/./base/lib_addch.c:443
#2 _nc_waddch_nosync (win=win@entry=0x153330, c=32) at ../ncurses/./base/lib_addch.c:529
#3 0x76e5f3b4 in waddnstr (win=0x153330, astr=<optimized out>, n=<optimized out>) at ../ncurses/./base/lib_addstr.c:70
#4 0x76e696e0 in mvwprintw (win=0x153330, y=<optimized out>, x=<optimized out>, fmt=0xc4718 "%2d") at ../ncurses/./base/lib_printw.c:127
#5 0x0002367c in ubx_initialize () at monitor_ubx.c:34
#6 0x00014c5c in switch_type (devtype=0xcc1f8 <driver_ubx>) at gpsmon.c:524
#7 0x00014eb8 in select_packet_monitor (device=0xf4008 <session>) at gpsmon.c:570
#8 0x00015938 in gpsmon_hook (device=0xf4008 <session>, changed=19494547352520246) at gpsmon.c:809
#9 0x00061b7c in gpsd_multipoll (data_ready=true, device=0xf4008 <session>, handler=0x154e8 <gpsmon_hook>, reawake_time=0) at libgpsd_core.c:1844
#10 0x00017844 in main (argc=1, argv=0x7efff264) at gpsmon.c:1398
(gdb) thread apply all bt full
Thread 1 (Thread 0x76ff7ff0 (LWP 6553)):
#0 0x76e5e1e0 in waddch_literal (ch=2097184, win=<optimized out>) at ../ncurses/./base/lib_addch.c:391
x = 2
y = <optimized out>
line = <optimized out>
x = <optimized out>
y = <optimized out>
line = <optimized out>
#1 waddch_nosync (ch=32, win=0x153330) at ../ncurses/./base/lib_addch.c:443
y = <optimized out>
s = <optimized out>
x = <optimized out>
t = 32
sp = <optimized out>
tabsize = 8
x = <optimized out>
y = <optimized out>
t = <optimized out>
sp = <optimized out>
s = <optimized out>
tabsize = <optimized out>
blank = <optimized out>
sch = <optimized out>
#2 _nc_waddch_nosync (win=win@entry=0x153330, c=32) at ../ncurses/./base/lib_addch.c:529
No locals.
#3 0x76e5f3b4 in waddnstr (win=0x153330, astr=<optimized out>, n=<optimized out>) at ../ncurses/./base/lib_addstr.c:70
ch = <optimized out>
str = 0x14dd61 "0"
code = 0
#4 0x76e696e0 in mvwprintw (win=0x153330, y=<optimized out>, x=<optimized out>, fmt=0xc4718 "%2d") at ../ncurses/./base/lib_printw.c:127
argp = {__ap = 0x7eff6f00}
code = <optimized out>
#5 0x0002367c in ubx_initialize () at monitor_ubx.c:34
i = 0
#6 0x00014c5c in switch_type (devtype=0xcc1f8 <driver_ubx>) at gpsmon.c:524
leftover = 0
trial = 0xed30c <monitor_objects+36>
newobject = 0xed30c <monitor_objects+36>
#7 0x00014eb8 in select_packet_monitor (device=0xf4008 <session>) at gpsmon.c:570
active_type = 0xcc1f8 <driver_ubx>
last_type = 19
#8 0x00015938 in gpsmon_hook (device=0xf4008 <session>, changed=19494547352520246) at gpsmon.c:809
buf = "\214\000\006\000\000\000\000\000\000\000\000\000h\360\377~\003\000\000\000\020\357\377~\350\357\377~le\":true,\"json\":false,\"nmea\":false,\"raw\":2,\"scaled\":false,\"timing\":false,\"split24\":false,\"pps\":true}\n\000\060\067\",\"activated\":\"2020-04-11T17:08:57.240Z\",\"flags\":1,\"native\":1,\"bps\":"...
ts_buf1 = "\b\000\000\000\240%\f\000\000\000\000\000\070\060\001\000\000\000\000\000\000"
ts_buf2 = "\340\210\311v\324\316\377~\240%\f\000\000\000\000\000\070\060\001\000\000"
__PRETTY_FUNCTION__ = "gpsmon_hook"
#9 0x00061b7c in gpsd_multipoll (data_ready=true, device=0xf4008 <session>, handler=0x154e8 <gpsmon_hook>, reawake_time=0) at libgpsd_core.c:1844
changed = 19494547352520246
fragments = 1
#10 0x00017844 in main (argc=1, argv=0x7efff264) at gpsmon.c:1398
efds = {fds_bits = {0 <repeats 32 times>}}
option = -1
explanation = 0x0
bailout = 0
matches = 0
nmea = false
all_fds = {fds_bits = {9, 0 <repeats 31 times>}}
rfds = {fds_bits = {8, 0 <repeats 31 times>}}
maxfd = 3
inbuf = "x\365\377v\300\207\311vH\246\377v\000\000\000\000\000\360\377~0y\377v \304\374v\205\317c\t\003\000\000\000x\365\377vj\252\337v0y\377v(\360\377~\220\302\374v\020n\375v\001\000\000\000 \304\374v\026\000\000\000\360\304\374vx\365\377v"
nocurses = false
activated = 3
Hopefully this helps even further.
BTW can I do anything about the values that have been optimized out? Perhaps removing the -O2 compilation flags will help.
Best Regards,
János
--
LinkedIn: linkedin.com/in/janosszigetvari__@__˚V˚
Make the switch to open (source) applications, protocols, formats now:
- windows -> Linux, iexplore -> Firefox, msoffice -> LibreOffice
- msn -> jabber protocol (Pidgin, Google Talk)
- mp3 -> ogg, wmv -> ogg, jpg -> png, doc/xls/ppt -> odt/ods/odp