Hardware access (read/write) watchpoint 1: statwin Hardware access (read/write) watchpoint 2: statwin Starting program: /usr/bin/gpsmon [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/libthread_db.so.1". Hardware access (read/write) watchpoint 1: statwin Old value = (WINDOW *) 0x0 New value = (WINDOW *) 0x136960 Hardware access (read/write) watchpoint 2: statwin Old value = (WINDOW *) 0x0 New value = (WINDOW *) 0x136960 curses_init () at gpsmon.c:481 481 cmdwin = newwin(CMDWINHEIGHT, 0, 0, 30); 476 curses_active = true; 477 478 #define CMDWINHEIGHT 1 479 480 statwin = newwin(CMDWINHEIGHT, 30, 0, 0); 481 cmdwin = newwin(CMDWINHEIGHT, 0, 0, 30); 482 packetwin = newwin(0, 0, CMDWINHEIGHT, 0); 483 if (statwin == NULL || cmdwin == NULL || packetwin == NULL) 484 return false; 485 (void)scrollok(packetwin, true); Continuing. Hardware access (read/write) watchpoint 1: statwin Value = (WINDOW *) 0x136960 Hardware access (read/write) watchpoint 2: statwin Value = (WINDOW *) 0x136960 curses_init () at gpsmon.c:483 483 if (statwin == NULL || cmdwin == NULL || packetwin == NULL) Continuing. Hardware access (read/write) watchpoint 1: statwin Value = (WINDOW *) 0x136960 Hardware access (read/write) watchpoint 2: statwin Value = (WINDOW *) 0x136960 refresh_statwin () at gpsmon.c:441 441 (void)wclear(statwin); Continuing. Hardware access (read/write) watchpoint 1: statwin Value = (WINDOW *) 0x136960 Hardware access (read/write) watchpoint 2: statwin Value = (WINDOW *) 0x136960 refresh_statwin () at gpsmon.c:442 442 (void)wattrset(statwin, A_BOLD); Continuing. Hardware access (read/write) watchpoint 1: statwin Value = (WINDOW *) 0x136960 Hardware access (read/write) watchpoint 2: statwin Value = (WINDOW *) 0x136960 0x000145d0 in refresh_statwin () at gpsmon.c:442 442 (void)wattrset(statwin, A_BOLD); Continuing. Hardware access (read/write) watchpoint 1: statwin Value = (WINDOW *) 0x136960 Hardware access (read/write) watchpoint 2: statwin Value = (WINDOW *) 0x136960 0x000145e4 in refresh_statwin () at gpsmon.c:442 442 (void)wattrset(statwin, A_BOLD); Continuing. Hardware access (read/write) watchpoint 1: statwin Value = (WINDOW *) 0x136960 Hardware access (read/write) watchpoint 2: statwin Value = (WINDOW *) 0x136960 0x000145f8 in refresh_statwin () at gpsmon.c:443 443 (void)mvwaddstr(statwin, 0, 0, promptgen()); Continuing. Hardware access (read/write) watchpoint 1: statwin Value = (WINDOW *) 0x136960 Hardware access (read/write) watchpoint 2: statwin Value = (WINDOW *) 0x136960 0x00014620 in refresh_statwin () at gpsmon.c:443 443 (void)mvwaddstr(statwin, 0, 0, promptgen()); Continuing. Hardware access (read/write) watchpoint 1: statwin Value = (WINDOW *) 0x136960 Hardware access (read/write) watchpoint 2: statwin Value = (WINDOW *) 0x136960 refresh_statwin () at gpsmon.c:444 444 (void)wattrset(statwin, A_NORMAL); Continuing. Hardware access (read/write) watchpoint 1: statwin Value = (WINDOW *) 0x136960 Hardware access (read/write) watchpoint 2: statwin Value = (WINDOW *) 0x136960 0x00014658 in refresh_statwin () at gpsmon.c:444 444 (void)wattrset(statwin, A_NORMAL); #0 0x00014658 in refresh_statwin () at gpsmon.c:444 No locals. #1 0x000149e8 in curses_init () at gpsmon.c:490 No locals. #2 0x000176d8 in main (argc=1, argv=0x7efff264) at gpsmon.c:1379 option = -1 explanation = 0x0 bailout = 0 matches = 0 nmea = false all_fds = {fds_bits = {9, 0 }} rfds = {fds_bits = {2130702376, 1993105472, 1996465048, 0, 1996276976, 1996276416, 1994527720, 70118831, 2130702512, 1996482872, 1996484608, -1431655765, 1996467476, 12, 1996482872, -1431655765, 0, 0, 1996482872, 0, 0, 0, 0, 1996464812, 2130702520, 1994537578, -2051164689, 0, 1996464368, 2130702620, 2130702840, 1996476732}} maxfd = 3 inbuf = "x\365\377v\300\027\314v\230\243\377v\000\000\000\000\000\360\377~`r\377v \304\374v\205\317c\t\003\000\000\000x\365\377vj:\342v`r\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 Continuing. Hardware access (read/write) watchpoint 1: statwin Value = (WINDOW *) 0x136960 Hardware access (read/write) watchpoint 2: statwin Value = (WINDOW *) 0x136960 0x0001466c in refresh_statwin () at gpsmon.c:444 444 (void)wattrset(statwin, A_NORMAL); Continuing. Hardware access (read/write) watchpoint 1: statwin Value = (WINDOW *) 0x136960 Hardware access (read/write) watchpoint 2: statwin Value = (WINDOW *) 0x136960 refresh_statwin () at gpsmon.c:445 445 (void)wnoutrefresh(statwin); #0 refresh_statwin () at gpsmon.c:445 No locals. #1 0x000149e8 in curses_init () at gpsmon.c:490 No locals. #2 0x000176d8 in main (argc=1, argv=0x7efff264) at gpsmon.c:1379 option = -1 explanation = 0x0 bailout = 0 matches = 0 nmea = false all_fds = {fds_bits = {9, 0 }} rfds = {fds_bits = {2130702376, 1993105472, 1996465048, 0, 1996276976, 1996276416, 1994527720, 70118831, 2130702512, 1996482872, 1996484608, -1431655765, 1996467476, 12, 1996482872, -1431655765, 0, 0, 1996482872, 0, 0, 0, 0, 1996464812, 2130702520, 1994537578, -2051164689, 0, 1996464368, 2130702620, 2130702840, 1996476732}} maxfd = 3 inbuf = "x\365\377v\300\027\314v\230\243\377v\000\000\000\000\000\360\377~`r\377v \304\374v\205\317c\t\003\000\000\000x\365\377vj:\342v`r\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 446 } curses_init () at gpsmon.c:491 491 refresh_cmdwin(); 486 (void)wsetscrreg(packetwin, 0, LINES - CMDWINHEIGHT); 487 488 (void)wmove(packetwin, 0, 0); 489 490 refresh_statwin(); 491 refresh_cmdwin(); 492 return true; 493 } 494 495 static bool switch_type(const struct gps_type_t *devtype) 492 return true; 493 } main (argc=1, argv=0x7efff264) at gpsmon.c:1385 1385 switch(gpsd_await_data(&rfds, &efds, maxfd, &all_fds, &context.errout)) 1388 break; 1399 switch(gpsd_multipoll(FD_ISSET(session.gpsdata.gps_fd, &rfds), Hardware access (read/write) watchpoint 1: statwin Value = (WINDOW *) 0x136960 Hardware access (read/write) watchpoint 2: statwin Value = (WINDOW *) 0x136960 refresh_statwin () at gpsmon.c:441 441 (void)wclear(statwin); 442 (void)wattrset(statwin, A_BOLD); Hardware access (read/write) watchpoint 1: statwin Value = (WINDOW *) 0x136960 Hardware access (read/write) watchpoint 2: statwin Value = (WINDOW *) 0x136960 refresh_statwin () at gpsmon.c:442 442 (void)wattrset(statwin, A_BOLD); Hardware access (read/write) watchpoint 1: statwin Value = (WINDOW *) 0x136960 Hardware access (read/write) watchpoint 2: statwin Value = (WINDOW *) 0x136960 0x000145d0 in refresh_statwin () at gpsmon.c:442 442 (void)wattrset(statwin, A_BOLD); Hardware access (read/write) watchpoint 1: statwin Value = (WINDOW *) 0x136960 Hardware access (read/write) watchpoint 2: statwin Value = (WINDOW *) 0x136960 0x000145e4 in refresh_statwin () at gpsmon.c:442 442 (void)wattrset(statwin, A_BOLD); 443 (void)mvwaddstr(statwin, 0, 0, promptgen()); Hardware access (read/write) watchpoint 1: statwin Value = (WINDOW *) 0x136960 Hardware access (read/write) watchpoint 2: statwin Value = (WINDOW *) 0x136960 0x000145f8 in refresh_statwin () at gpsmon.c:443 443 (void)mvwaddstr(statwin, 0, 0, promptgen()); Hardware access (read/write) watchpoint 1: statwin Value = (WINDOW *) 0x136960 Hardware access (read/write) watchpoint 2: statwin Value = (WINDOW *) 0x136960 0x00014620 in refresh_statwin () at gpsmon.c:443 443 (void)mvwaddstr(statwin, 0, 0, promptgen()); 444 (void)wattrset(statwin, A_NORMAL); Hardware access (read/write) watchpoint 1: statwin Value = (WINDOW *) 0x136960 Hardware access (read/write) watchpoint 2: statwin Value = (WINDOW *) 0x136960 refresh_statwin () at gpsmon.c:444 444 (void)wattrset(statwin, A_NORMAL); Hardware access (read/write) watchpoint 1: statwin Value = (WINDOW *) 0x136960 Hardware access (read/write) watchpoint 2: statwin Value = (WINDOW *) 0x136960 0x00014658 in refresh_statwin () at gpsmon.c:444 444 (void)wattrset(statwin, A_NORMAL); Hardware access (read/write) watchpoint 1: statwin Value = (WINDOW *) 0x136960 Hardware access (read/write) watchpoint 2: statwin Value = (WINDOW *) 0x136960 0x0001466c in refresh_statwin () at gpsmon.c:444 444 (void)wattrset(statwin, A_NORMAL); 445 (void)wnoutrefresh(statwin); Hardware access (read/write) watchpoint 1: statwin Value = (WINDOW *) 0x136960 Hardware access (read/write) watchpoint 2: statwin Value = (WINDOW *) 0x136960 refresh_statwin () at gpsmon.c:445 445 (void)wnoutrefresh(statwin); #0 refresh_statwin () at gpsmon.c:445 No locals. #1 0x00014ed0 in select_packet_monitor (device=0xeaec0 ) at gpsmon.c:574 active_type = 0xc1390 last_type = -1 #2 0x00015928 in gpsmon_hook (device=0xeaec0 , changed=2286984219328514) at gpsmon.c:810 buf = "@\315\005\000\000\000\000\000\000\000\000\000h\360\377~\003\000\000\000\020\357\377~\350\357\377~\035\000\000\000\000\000\000\000\344\316\377~\300\256\016\000\000\000\000\000H\276\v\000\360\356\377~\024\341\t\000\000\000\000\000\300\256\016\000\370\356\377~?WATCH={\"raw\":2,\"pps\":true}\r\n", '\000' ... ts_buf1 = "\b\000\000\000H\276\v\000\000\000\000\000(0\001\000\000\000\000\000\000" ts_buf2 = "\340\030\314v\324\316\377~H\276\v\000\000\000\000\000(0\001\000\000" __PRETTY_FUNCTION__ = "gpsmon_hook" #3 0x0005e838 in gpsd_multipoll (data_ready=true, device=0xeaec0 , handler=0x154d8 , reawake_time=0) at libgpsd_core.c:1835 changed = 2286984219328514 fragments = 0 #4 0x00017834 in main (argc=1, argv=0x7efff264) at gpsmon.c:1399 efds = {fds_bits = {0 }} option = -1 explanation = 0x0 bailout = 0 matches = 0 nmea = false all_fds = {fds_bits = {9, 0 }} rfds = {fds_bits = {8, 0 }} maxfd = 3 inbuf = "x\365\377v\300\027\314v\230\243\377v\000\000\000\000\000\360\377~`r\377v \304\374v\205\317c\t\003\000\000\000x\365\377vj:\342v`r\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 446 } select_packet_monitor (device=0xeaec0 ) at gpsmon.c:575 575 refresh_cmdwin(); 577 last_type = device->lexer.type; 580 if (active != NULL 581 && device->lexer.outbuflen > 0 582 && (*active)->update != NULL) 584 if (devicewin != NULL) 585 (void)wnoutrefresh(devicewin); 586 } gpsmon_hook (device=0xeaec0 , changed=2286984219328514) at gpsmon.c:813 813 (int)device->lexer.outbuflen); #0 gpsmon_hook (device=0xeaec0 , changed=2286984219328514) at gpsmon.c:813 buf = "@\315\005\000\000\000\000\000\000\000\000\000h\360\377~\003\000\000\000\020\357\377~\350\357\377~\035\000\000\000\000\000\000\000\344\316\377~\300\256\016\000\000\000\000\000H\276\v\000\360\356\377~\024\341\t\000\000\000\000\000\300\256\016\000\370\356\377~?WATCH={\"raw\":2,\"pps\":true}\r\n", '\000' ... ts_buf1 = "\b\000\000\000H\276\v\000\000\000\000\000(0\001\000\000\000\000\000\000" ts_buf2 = "\340\030\314v\324\316\377~H\276\v\000\000\000\000\000(0\001\000\000" __PRETTY_FUNCTION__ = "gpsmon_hook" #1 0x0005e838 in gpsd_multipoll (data_ready=true, device=0xeaec0 , handler=0x154d8 , reawake_time=0) at libgpsd_core.c:1835 changed = 2286984219328514 fragments = 0 #2 0x00017834 in main (argc=1, argv=0x7efff264) at gpsmon.c:1399 efds = {fds_bits = {0 }} option = -1 explanation = 0x0 bailout = 0 matches = 0 nmea = false all_fds = {fds_bits = {9, 0 }} rfds = {fds_bits = {8, 0 }} maxfd = 3 inbuf = "x\365\377v\300\027\314v\230\243\377v\000\000\000\000\000\360\377~`r\377v \304\374v\205\317c\t\003\000\000\000x\365\377vj:\342v`r\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 812 (void)snprintf(buf, sizeof(buf), "(%d) ", 814 cond_hexdump(buf + strlen(buf), sizeof(buf) - strlen(buf), 815 (char *)device->lexer.outbuffer,device->lexer.outbuflen); 814 cond_hexdump(buf + strlen(buf), sizeof(buf) - strlen(buf), 816 (void)strlcat(buf, "\n", sizeof(buf)); 819 report_lock(); 821 if (!curses_active) 824 if (packetwin != NULL) { 825 (void)waddstr(packetwin, buf); 826 (void)wnoutrefresh(packetwin); 828 (void)doupdate(); 831 if (logfile != NULL && device->lexer.outbuflen > 0) { #0 gpsmon_hook (device=0xeaec0 , changed=2286984219328514) at gpsmon.c:831 buf = "(82) {\"class\":\"VERSION\",\"release\":\"3.20\",\"rev\":\"3.20\",\"proto_major\":3,\"proto_minor\":14}\n\000pps\":true}\r\n", '\000' ... ts_buf1 = "\b\000\000\000H\276\v\000\000\000\000\000(0\001\000\000\000\000\000\000" ts_buf2 = "\340\030\314v\324\316\377~H\276\v\000\000\000\000\000(0\001\000\000" __PRETTY_FUNCTION__ = "gpsmon_hook" #1 0x0005e838 in gpsd_multipoll (data_ready=true, device=0xeaec0 , handler=0x154d8 , reawake_time=0) at libgpsd_core.c:1835 changed = 2286984219328514 fragments = 0 #2 0x00017834 in main (argc=1, argv=0x7efff264) at gpsmon.c:1399 efds = {fds_bits = {0 }} option = -1 explanation = 0x0 bailout = 0 matches = 0 nmea = false all_fds = {fds_bits = {9, 0 }} rfds = {fds_bits = {8, 0 }} maxfd = 3 inbuf = "x\365\377v\300\027\314v\230\243\377v\000\000\000\000\000\360\377~`r\377v \304\374v\205\317c\t\003\000\000\000x\365\377vj:\342v`r\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 826 (void)wnoutrefresh(packetwin); 827 } 828 (void)doupdate(); 829 } 830 831 if (logfile != NULL && device->lexer.outbuflen > 0) { 832 UNUSED size_t written_count = fwrite 833 (device->lexer.outbuffer, sizeof(char), 834 device->lexer.outbuflen, logfile); 835 assert(written_count >= 1); 838 report_unlock(); 842 if (0 >= device->newdata.time.tv_sec) { 849 } gpsd_multipoll (data_ready=true, device=0xeaec0 , handler=0x154d8 , reawake_time=0) at libgpsd_core.c:1748 1748 for (fragments = 0; ; fragments++) { #0 gpsd_multipoll (data_ready=true, device=0xeaec0 , handler=0x154d8 , reawake_time=0) at libgpsd_core.c:1748 fragments = 0 #1 0x00017834 in main (argc=1, argv=0x7efff264) at gpsmon.c:1399 efds = {fds_bits = {0 }} option = -1 explanation = 0x0 bailout = 0 matches = 0 nmea = false all_fds = {fds_bits = {9, 0 }} rfds = {fds_bits = {8, 0 }} maxfd = 3 inbuf = "x\365\377v\300\027\314v\230\243\377v\000\000\000\000\000\360\377~`r\377v \304\374v\205\317c\t\003\000\000\000x\365\377vj:\342v`r\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 1743 return DEVICE_READY; 1744 } 1745 } 1746 #endif /* NETFEED_ENABLE */ 1747 1748 for (fragments = 0; ; fragments++) { 1749 gps_mask_t changed = gpsd_poll(device); 1750 1751 if (changed == EOF_IS) { 1752 GPSD_LOG(LOG_WARN, &device->context->errout, 1749 gps_mask_t changed = gpsd_poll(device); 1751 if (changed == EOF_IS) { 1756 } else if (changed == ERROR_SET) { 1763 } else if (changed == NODATA_IS) { 1758 "device read of %s returned error or " 1759 "packet sniffer failed sync (flags %s)\n", 1760 device->gpsdata.dev.path, 1761 gps_maskdump(changed)); 1762 return DEVICE_ERROR; 1763 } else if (changed == NODATA_IS) { 1764 /* 1765 * No data on the first fragment read means the device 1766 * fd may have been in an end-of-file condition on select. 1767 */ #0 gpsd_multipoll (data_ready=true, device=0xeaec0 , handler=0x154d8 , reawake_time=0) at libgpsd_core.c:1763 changed = 2251799847239682 fragments = 1 #1 0x00017834 in main (argc=1, argv=0x7efff264) at gpsmon.c:1399 efds = {fds_bits = {0 }} option = -1 explanation = 0x0 bailout = 0 matches = 0 nmea = false all_fds = {fds_bits = {9, 0 }} rfds = {fds_bits = {8, 0 }} maxfd = 3 inbuf = "x\365\377v\300\027\314v\230\243\377v\000\000\000\000\000\360\377~`r\377v \304\374v\205\317c\t\003\000\000\000x\365\377vj:\342v`r\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 1811 device->zerokill = false; 1812 device->reawake = (time_t)0; 1815 if ((changed & PACKET_SET) == 0) 1819 if (device->context->errout.debug >= LOG_DATA) { 1814 /* must have a full packet to continue */ 1815 if ((changed & PACKET_SET) == 0) 1816 break; 1817 1818 /* conditional prevents mask dumper from eating CPU */ 1819 if (device->context->errout.debug >= LOG_DATA) { 1820 if (device->lexer.type == BAD_PACKET) 1821 GPSD_LOG(LOG_DATA, &device->context->errout, 1822 "packet with bad checksum from %s\n", 1823 device->gpsdata.dev.path); #0 gpsd_multipoll (data_ready=true, device=0xeaec0 , handler=0x154d8 , reawake_time=0) at libgpsd_core.c:1819 changed = 2251799847239682 fragments = 1 #1 0x00017834 in main (argc=1, argv=0x7efff264) at gpsmon.c:1399 efds = {fds_bits = {0 }} option = -1 explanation = 0x0 bailout = 0 matches = 0 nmea = false all_fds = {fds_bits = {9, 0 }} rfds = {fds_bits = {8, 0 }} maxfd = 3 inbuf = "x\365\377v\300\027\314v\230\243\377v\000\000\000\000\000\360\377~`r\377v \304\374v\205\317c\t\003\000\000\000x\365\377vj:\342v`r\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 1834 if (device->lexer.type != BAD_PACKET) 1835 handler(device, changed); #0 gpsd_multipoll (data_ready=true, device=0xeaec0 , handler=0x154d8 , reawake_time=0) at libgpsd_core.c:1835 changed = 2251799847239682 fragments = 1 #1 0x00017834 in main (argc=1, argv=0x7efff264) at gpsmon.c:1399 efds = {fds_bits = {0 }} option = -1 explanation = 0x0 bailout = 0 matches = 0 nmea = false all_fds = {fds_bits = {9, 0 }} rfds = {fds_bits = {8, 0 }} maxfd = 3 inbuf = "x\365\377v\300\027\314v\230\243\377v\000\000\000\000\000\360\377~`r\377v \304\374v\205\317c\t\003\000\000\000x\365\377vj:\342v`r\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 1830 } 1831 1832 1833 /* handle data contained in this packet */ 1834 if (device->lexer.type != BAD_PACKET) 1835 handler(device, changed); 1836 1837 #ifdef __future__ 1838 // this breaks: test/daemon/passthrough.log ?? 1839 /* 1748 for (fragments = 0; ; fragments++) { #0 gpsd_multipoll (data_ready=true, device=0xeaec0 , handler=0x154d8 , reawake_time=0) at libgpsd_core.c:1748 fragments = 1 #1 0x00017834 in main (argc=1, argv=0x7efff264) at gpsmon.c:1399 efds = {fds_bits = {0 }} option = -1 explanation = 0x0 bailout = 0 matches = 0 nmea = false all_fds = {fds_bits = {9, 0 }} rfds = {fds_bits = {8, 0 }} maxfd = 3 inbuf = "x\365\377v\300\027\314v\230\243\377v\000\000\000\000\000\360\377~`r\377v \304\374v\205\317c\t\003\000\000\000x\365\377vj:\342v`r\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 1743 return DEVICE_READY; 1744 } 1745 } 1746 #endif /* NETFEED_ENABLE */ 1747 1748 for (fragments = 0; ; fragments++) { 1749 gps_mask_t changed = gpsd_poll(device); 1750 1751 if (changed == EOF_IS) { 1752 GPSD_LOG(LOG_WARN, &device->context->errout, 1749 gps_mask_t changed = gpsd_poll(device); 1751 if (changed == EOF_IS) { 1756 } else if (changed == ERROR_SET) { 1763 } else if (changed == NODATA_IS) { 1758 "device read of %s returned error or " 1759 "packet sniffer failed sync (flags %s)\n", 1760 device->gpsdata.dev.path, 1761 gps_maskdump(changed)); 1762 return DEVICE_ERROR; 1763 } else if (changed == NODATA_IS) { 1764 /* 1765 * No data on the first fragment read means the device 1766 * fd may have been in an end-of-file condition on select. 1767 */ #0 gpsd_multipoll (data_ready=true, device=0xeaec0 , handler=0x154d8 , reawake_time=0) at libgpsd_core.c:1763 changed = 2251799847239682 fragments = 2 #1 0x00017834 in main (argc=1, argv=0x7efff264) at gpsmon.c:1399 efds = {fds_bits = {0 }} option = -1 explanation = 0x0 bailout = 0 matches = 0 nmea = false all_fds = {fds_bits = {9, 0 }} rfds = {fds_bits = {8, 0 }} maxfd = 3 inbuf = "x\365\377v\300\027\314v\230\243\377v\000\000\000\000\000\360\377~`r\377v \304\374v\205\317c\t\003\000\000\000x\365\377vj:\342v`r\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 1811 device->zerokill = false; 1812 device->reawake = (time_t)0; 1815 if ((changed & PACKET_SET) == 0) #0 gpsd_multipoll (data_ready=true, device=0xeaec0 , handler=0x154d8 , reawake_time=0) at libgpsd_core.c:1815 changed = 2251799847239682 fragments = 2 #1 0x00017834 in main (argc=1, argv=0x7efff264) at gpsmon.c:1399 efds = {fds_bits = {0 }} option = -1 explanation = 0x0 bailout = 0 matches = 0 nmea = false all_fds = {fds_bits = {9, 0 }} rfds = {fds_bits = {8, 0 }} maxfd = 3 inbuf = "x\365\377v\300\027\314v\230\243\377v\000\000\000\000\000\360\377~`r\377v \304\374v\205\317c\t\003\000\000\000x\365\377vj:\342v`r\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 1810 /* we got actual data, head off the reawake special case */ 1811 device->zerokill = false; 1812 device->reawake = (time_t)0; 1813 1814 /* must have a full packet to continue */ 1815 if ((changed & PACKET_SET) == 0) 1816 break; 1817 1818 /* conditional prevents mask dumper from eating CPU */ 1819 if (device->context->errout.debug >= LOG_DATA) { 1819 if (device->context->errout.debug >= LOG_DATA) { 1834 if (device->lexer.type != BAD_PACKET) 1835 handler(device, changed); #0 gpsd_multipoll (data_ready=true, device=0xeaec0 , handler=0x154d8 , reawake_time=0) at libgpsd_core.c:1835 changed = 2251799847239682 fragments = 2 #1 0x00017834 in main (argc=1, argv=0x7efff264) at gpsmon.c:1399 efds = {fds_bits = {0 }} option = -1 explanation = 0x0 bailout = 0 matches = 0 nmea = false all_fds = {fds_bits = {9, 0 }} rfds = {fds_bits = {8, 0 }} maxfd = 3 inbuf = "x\365\377v\300\027\314v\230\243\377v\000\000\000\000\000\360\377~`r\377v \304\374v\205\317c\t\003\000\000\000x\365\377vj:\342v`r\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 1830 } 1831 1832 1833 /* handle data contained in this packet */ 1834 if (device->lexer.type != BAD_PACKET) 1835 handler(device, changed); 1836 1837 #ifdef __future__ 1838 // this breaks: test/daemon/passthrough.log ?? 1839 /* 1748 for (fragments = 0; ; fragments++) { 1749 gps_mask_t changed = gpsd_poll(device); 1751 if (changed == EOF_IS) { 1756 } else if (changed == ERROR_SET) { 1763 } else if (changed == NODATA_IS) { 1811 device->zerokill = false; 1812 device->reawake = (time_t)0; 1807 break; 1808 } 1809 1810 /* we got actual data, head off the reawake special case */ 1811 device->zerokill = false; 1812 device->reawake = (time_t)0; 1813 1814 /* must have a full packet to continue */ 1815 if ((changed & PACKET_SET) == 0) 1816 break; #0 gpsd_multipoll (data_ready=true, device=0xeaec0 , handler=0x154d8 , reawake_time=0) at libgpsd_core.c:1812 changed = 2251799847239682 fragments = 3 #1 0x00017834 in main (argc=1, argv=0x7efff264) at gpsmon.c:1399 efds = {fds_bits = {0 }} option = -1 explanation = 0x0 bailout = 0 matches = 0 nmea = false all_fds = {fds_bits = {9, 0 }} rfds = {fds_bits = {8, 0 }} maxfd = 3 inbuf = "x\365\377v\300\027\314v\230\243\377v\000\000\000\000\000\360\377~`r\377v \304\374v\205\317c\t\003\000\000\000x\365\377vj:\342v`r\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 1815 if ((changed & PACKET_SET) == 0) 1819 if (device->context->errout.debug >= LOG_DATA) { 1834 if (device->lexer.type != BAD_PACKET) 1829 gps_maskdump(device->gpsdata.set)); 1830 } 1831 1832 1833 /* handle data contained in this packet */ 1834 if (device->lexer.type != BAD_PACKET) 1835 handler(device, changed); 1836 1837 #ifdef __future__ 1838 // this breaks: test/daemon/passthrough.log ?? 1835 handler(device, changed); #0 gpsd_multipoll (data_ready=true, device=0xeaec0 , handler=0x154d8 , reawake_time=0) at libgpsd_core.c:1835 changed = 2251799847239682 fragments = 3 #1 0x00017834 in main (argc=1, argv=0x7efff264) at gpsmon.c:1399 efds = {fds_bits = {0 }} option = -1 explanation = 0x0 bailout = 0 matches = 0 nmea = false all_fds = {fds_bits = {9, 0 }} rfds = {fds_bits = {8, 0 }} maxfd = 3 inbuf = "x\365\377v\300\027\314v\230\243\377v\000\000\000\000\000\360\377~`r\377v \304\374v\205\317c\t\003\000\000\000x\365\377vj:\342v`r\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 1748 for (fragments = 0; ; fragments++) { 1749 gps_mask_t changed = gpsd_poll(device); 1744 } 1745 } 1746 #endif /* NETFEED_ENABLE */ 1747 1748 for (fragments = 0; ; fragments++) { 1749 gps_mask_t changed = gpsd_poll(device); 1750 1751 if (changed == EOF_IS) { 1752 GPSD_LOG(LOG_WARN, &device->context->errout, 1753 "device signed off %s\n", 1751 if (changed == EOF_IS) { 1756 } else if (changed == ERROR_SET) { 1763 } else if (changed == NODATA_IS) { 1811 device->zerokill = false; 1812 device->reawake = (time_t)0; 1807 break; 1808 } 1809 1810 /* we got actual data, head off the reawake special case */ 1811 device->zerokill = false; 1812 device->reawake = (time_t)0; 1813 1814 /* must have a full packet to continue */ 1815 if ((changed & PACKET_SET) == 0) 1816 break; #0 gpsd_multipoll (data_ready=true, device=0xeaec0 , handler=0x154d8 , reawake_time=0) at libgpsd_core.c:1812 changed = 9748476283913782 fragments = 4 #1 0x00017834 in main (argc=1, argv=0x7efff264) at gpsmon.c:1399 efds = {fds_bits = {0 }} option = -1 explanation = 0x0 bailout = 0 matches = 0 nmea = false all_fds = {fds_bits = {9, 0 }} rfds = {fds_bits = {8, 0 }} maxfd = 3 inbuf = "x\365\377v\300\027\314v\230\243\377v\000\000\000\000\000\360\377~`r\377v \304\374v\205\317c\t\003\000\000\000x\365\377vj:\342v`r\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 1815 if ((changed & PACKET_SET) == 0) 1819 if (device->context->errout.debug >= LOG_DATA) { 1834 if (device->lexer.type != BAD_PACKET) 1835 handler(device, changed); 1830 } 1831 1832 1833 /* handle data contained in this packet */ 1834 if (device->lexer.type != BAD_PACKET) 1835 handler(device, changed); 1836 1837 #ifdef __future__ 1838 // this breaks: test/daemon/passthrough.log ?? 1839 /* #0 gpsd_multipoll (data_ready=true, device=0xeaec0 , handler=0x154d8 , reawake_time=0) at libgpsd_core.c:1835 changed = 9748476283913782 fragments = 4 #1 0x00017834 in main (argc=1, argv=0x7efff264) at gpsmon.c:1399 efds = {fds_bits = {0 }} option = -1 explanation = 0x0 bailout = 0 matches = 0 nmea = false all_fds = {fds_bits = {9, 0 }} rfds = {fds_bits = {8, 0 }} maxfd = 3 inbuf = "x\365\377v\300\027\314v\230\243\377v\000\000\000\000\000\360\377~`r\377v \304\374v\205\317c\t\003\000\000\000x\365\377vj:\342v`r\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 Program received signal SIGSEGV, Segmentation fault. 0x76e86094 in _nc_waddch_nosync () from /lib/libncurses.so.6 Single stepping until exit from function _nc_waddch_nosync, which has no line number information. Program terminated with signal SIGSEGV, Segmentation fault. The program no longer exists. Ambiguous command "e": echo, edit, en, enable, end, eval, exec-file, explore, expression.