gpsd-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: gpsmon segmentation fault


From: Gary E. Miller
Subject: Re: gpsmon segmentation fault
Date: Mon, 27 Apr 2020 16:44:36 -0700

Yo SZIGETVÁRI!

I looked at this a bit more.  What a mess.  gpsmon may never work for you.

On Mon, 27 Apr 2020 12:29:37 +0200
SZIGETVÁRI János <address@hidden> wrote:

> Also we debugged the problem a little more, and it seems that the
> problem is that the third line passed to ncurses is a null pointer
> for some reason.

I don't see how it could be NULL.  Maybe a locking problem.  The
gpsmon code locking is pretty random.

So I added some locks and NULL checks in the area.  The whole program
just needs to die.

> > (gdb) chtype_print  (win->_line[2]->text)
> > "Cannot access memory at address 0x0
> > (gdb) chtype_print  (win->_line[3]->text)

That should be type_name.

> is indented by 16384 (which happens to be 2^14).  Each of those "+ "
> levels is supposed to be corresponding to a call/return level.

Easy to believe.  This code does evil things like longjump().

> The "Unknown device" message comes from gpsmon.c in refresh_statwin().
> Unlike some other places in gpsmon.c, there's no report_lock() /
> report_unlock() around the calls to this function, e.g., as
> used in select_packet_monitor().  You might get better results with
> the trace if the curses calls were consistently locked (whether
> or not it seems "necessary").

I don't care enough to untangle how the locks are done.  gpsmon is
a client and link in the server library.  A big mess.

Patches welcone.

RGDS
GARY
---------------------------------------------------------------------------
Gary E. Miller Rellim 109 NW Wilmington Ave., Suite E, Bend, OR 97703
        address@hidden  Tel:+1 541 382 8588

            Veritas liberabit vos. -- Quid est veritas?
    "If you can't measure it, you can't improve it." - Lord Kelvin

Attachment: pgpZN3VbLfb8g.pgp
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]