Debian Bug report logs - #689187
python-gps: fakegps segfaults on NMEA file

version graph

Package: python-gps; Maintainer for python-gps is Bernd Zeimetz <bzed@debian.org>; Source for python-gps is src:gpsd.

Reported by: Pavel Machek <pavel@ucw.cz>

Date: Sat, 29 Sep 2012 22:18:02 UTC

Severity: important

Merged with 689188

Found in version gpsd/3.6-4

Reply or subscribe to this bug.

Toggle useless messages

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to debian-bugs-dist@lists.debian.org, Bernd Zeimetz <bzed@debian.org>:
Bug#689187; Package python-gps. (Sat, 29 Sep 2012 22:18:04 GMT) Full text and rfc822 format available.

Acknowledgement sent to Pavel Machek <pavel@ucw.cz>:
New Bug report received and forwarded. Copy sent to Bernd Zeimetz <bzed@debian.org>. (Sat, 29 Sep 2012 22:18:05 GMT) Full text and rfc822 format available.

Message #5 received at submit@bugs.debian.org (full text, mbox):

From: Pavel Machek <pavel@ucw.cz>
To: Debian Bug Tracking System <submit@bugs.debian.org>
Subject: python-gps: fakegps segfaults on NMEA file
Date: Sun, 30 Sep 2012 00:06:49 +0200
Package: python-gps
Version: 3.6-4
Severity: important


fakegps segfaults on many nmea logs I could find. It does so even
without all the debugging options.
 

root@amd:/home/pavel/misc/gpx#  gpsfake -p -v -D 5 -b  -c 1
zlutak_klepec_toris_dolanka.nmea 
Processing zlutak_klepec_toris_dolanka.nmea...gpsd:PROG: control
socket opened at /tmp/gpsfake-20137.sock
gpsd:INFO: launching (Version 3.6)
gpsd:IO: opening IPv4 socket
gpsd:IO: opening IPv6 socket
gpsd:ERROR: can't create IPv6 socket
gpsd:INFO: listening on port 2947
gpsd:PROG: NTPD shmat(872382469,0,0) succeeded, segment 0
gpsd:PROG: NTPD shmat(872415244,0,0) succeeded, segment 1
gpsd:PROG: NTPD shmat(872448013,0,0) succeeded, segment 2
gpsd:PROG: NTPD shmat(872480782,0,0) succeeded, segment 3
gpsd:PROG: successfully connected to the DBUS system bus
gpsd:PROG: changing to group 20
gpsd:INFO: running with effective group ID 20
gpsd:INFO: running with effective user ID 65534
gpsd:INFO: startup at 2012-09-29T22:03:25.000Z (1348956205)
gpsfake: gps_add(zlutak_klepec_toris_dolanka.nmea, 4800)
Segmentation fault (core dumped)
root@amd:/home/pavel/misc/gpx# 


-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: i386 (i686)

Kernel: Linux 3.6.0-rc6+ (SMP w/2 CPU cores)
Locale: LANG=C, LC_CTYPE=cs_CZ (charmap=)
Shell: /bin/sh linked to /bin/dash

Versions of packages python-gps depends on:
ii  libbluetooth3                4.99-2      Library to use the BlueZ Linux Blu
ii  libc6                        2.13-35     Embedded GNU C Library: Shared lib
ii  libdbus-1-3                  1.6.0-1     simple interprocess messaging syst
ii  python                       2.7.3~rc2-1 interactive high-level object-orie

Versions of packages python-gps recommends:
ih  gpsd                          3.6-4      Global Positioning System - daemon

python-gps suggests no packages.

-- no debconf information



Information forwarded to debian-bugs-dist@lists.debian.org, Bernd Zeimetz <bzed@debian.org>:
Bug#689187; Package python-gps. (Sat, 29 Sep 2012 22:30:09 GMT) Full text and rfc822 format available.

Acknowledgement sent to Bernd Zeimetz <bernd@bzed.de>:
Extra info received and forwarded to list. Copy sent to Bernd Zeimetz <bzed@debian.org>. (Sat, 29 Sep 2012 22:30:09 GMT) Full text and rfc822 format available.

Message #10 received at 689187@bugs.debian.org (full text, mbox):

From: Bernd Zeimetz <bernd@bzed.de>
To: Pavel Machek <pavel@ucw.cz>, 689187@bugs.debian.org, control@bugs.debian.org
Subject: Re: Bug#689187: python-gps: fakegps segfaults on NMEA file
Date: Sun, 30 Sep 2012 00:28:23 +0200
forcemerge 689187 689188
thanks

Hi,

> fakegps segfaults on many nmea logs I could find. It does so even
> without all the debugging options.

please provide the nmea files.
Also please checkout the gpsd git repository or use apt-get to retrieve the
source and check if they files from the regression tests fail on your machine, too.

In case they also fail...

> Kernel: Linux 3.6.0-rc6+ (SMP w/2 CPU cores)

please try the same with a kernel shipped with Debian and

> Locale: LANG=C, LC_CTYPE=cs_CZ (charmap=)

please also try it with en_US.UTF-8 or C as LC_TYPE.


Also please try to get a core file, see which process segfaulted and provide a
backtrace.


Thanks,

Bernd

-- 
 Bernd Zeimetz                            Debian GNU/Linux Developer
 http://bzed.de                                http://www.debian.org
 GPG Fingerprint: ECA1 E3F2 8E11 2432 D485  DD95 EB36 171A 6FF9 435F



Merged 689187 689188 Request was from Bernd Zeimetz <bernd@bzed.de> to control@bugs.debian.org. (Sat, 29 Sep 2012 22:30:11 GMT) Full text and rfc822 format available.

Information forwarded to debian-bugs-dist@lists.debian.org, Bernd Zeimetz <bzed@debian.org>:
Bug#689187; Package python-gps. (Sun, 30 Sep 2012 18:39:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Pavel Machek <pavel@ucw.cz>:
Extra info received and forwarded to list. Copy sent to Bernd Zeimetz <bzed@debian.org>. (Sun, 30 Sep 2012 18:39:03 GMT) Full text and rfc822 format available.

Message #17 received at 689187@bugs.debian.org (full text, mbox):

From: Pavel Machek <pavel@ucw.cz>
To: Bernd Zeimetz <bernd@bzed.de>
Cc: 689187@bugs.debian.org, control@bugs.debian.org
Subject: Re: Bug#689187: python-gps: fakegps segfaults on NMEA file
Date: Sun, 30 Sep 2012 20:31:04 +0200
Hi!

> > fakegps segfaults on many nmea logs I could find. It does so even
> > without all the debugging options.
> 
> please provide the nmea files.

The file I can reproduce it is rather big (7MB). I tried shorter
sections, but no luck. I can send it to you, but would prefer it not
be redistributed; would that be feasible?

> Also please checkout the gpsd git repository or use apt-get to retrieve the
> source and check if they files from the regression tests fail on your machine, too.
> 
> In case they also fail...
> 
> > Kernel: Linux 3.6.0-rc6+ (SMP w/2 CPU cores)
> 
> please try the same with a kernel shipped with Debian and

Sorry, that is not easy to do.

> > Locale: LANG=C, LC_CTYPE=cs_CZ (charmap=)
> 
> please also try it with en_US.UTF-8 or C as LC_TYPE.

Does not seem to help.

pavel@amd:~/misc/gpx$ LC_CTYPE=C gpsfake test.nmea
Processing test.nmea
gpsd:ERROR: can't bind to IPv4 port 2947, Address already in use
gpsd:ERROR: maybe gpsd is already running!
gpsd:ERROR: can't create IPv6 socket
Segmentation fault (core dumped)
pavel@amd:~/misc/gpx$ 

> Also please try to get a core file, see which process segfaulted and provide a
> backtrace.

root@amd:/home/pavel/misc/gpx# file core
core: ELF 32-bit LSB core file Intel 80386, version 1 (SYSV),
SVR4-style, from '/usr/bin/python /usr/bin/gpsfake test.nmea'

It looks like gpsd does not have to be involved.

pavel@amd:~/misc/gpx$ cat zlutak_klepec_toris_dolanka.nmea > test.nmea
pavel@amd:~/misc/gpx$ ls -al test.nmea
-rw-r--r-- 1 pavel pavel 7172096 Sep 30 20:22 test.nmea
pavel@amd:~/misc/gpx$ gpsfake test.nmea
Processing test.nmea
gpsd:ERROR: can't bind to IPv4 port 2947, Address already in use
gpsd:ERROR: maybe gpsd is already running!
gpsd:ERROR: can't create IPv6 socket
Segmentation fault (core dumped)
pavel@amd:~/misc/gpx$ 

pavel@amd:~/misc/gpx$ gdb /usr/bin/python core 
GNU gdb (GDB) 7.4.1-debian
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show
copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/python...(no debugging symbols
found)...done.

warning: core file may not match specified executable file.
[New LWP 11904]

warning: Can't read pathname for load map: Input/output error.
[Thread debugging using libthread_db enabled]
Using host libthread_db library
"/lib/i386-linux-gnu/i686/cmov/libthread_db.so.1".
Failed to read a valid object file image from memory.
Core was generated by `/usr/bin/python /usr/bin/gpsfake
zlutak_klepec_toris_dolanka.nmea'.
Program terminated with signal 11, Segmentation fault.
#0  __memmove_ia32 () at
../sysdeps/i386/i686/multiarch/../memmove.S:77
77	../sysdeps/i386/i686/multiarch/../memmove.S: No such file or
directory.
(gdb) 
(gdb) quit
pavel@amd:~/misc/gpx$ python --version
Python 2.7.3rc2
pavel@amd:~/misc/gpx$ 

dmesg says:

gpsfake[11746]: segfault at 8c1a000 ip b741f6a3 sp bfba3818 error 4 in
libc-2.13.so[b73a8000+156000]

Aha, I can gdb it to get better backtrace:

Program received signal SIGSEGV, Segmentation fault.
__memmove_ia32 () at ../sysdeps/i386/i686/multiarch/../memmove.S:77
77	       ../sysdeps/i386/i686/multiarch/../memmove.S: No such
file or directory.
(gdb) bt
#0  __memmove_ia32 () at
../sysdeps/i386/i686/multiarch/../memmove.S:77
#1  0xb7a74c89 in ?? () from
/usr/lib/python2.7/dist-packages/gps/packet.so
#2  0xb7a78f1f in packet_get () from
/usr/lib/python2.7/dist-packages/gps/packet.so
#3  0xb7a746a3 in ?? () from
/usr/lib/python2.7/dist-packages/gps/packet.so
#4  0x0813b279 in PyEval_EvalFrameEx ()
#5  0x081417f0 in PyEval_EvalCodeEx ()
#6  0x0819bf62 in ?? ()
#7  0x080bfe6f in PyObject_Call ()
#8  0x0809be57 in ?? ()
#9  0x080bfe6f in PyObject_Call ()
#10 0x080c03f9 in PyEval_CallObjectWithKeywords ()
#11 0x080e346c in PyInstance_New ()
#12 0x080bfe6f in PyObject_Call ()
#13 0x0813ba96 in PyEval_EvalFrameEx ()
#14 0x081417f0 in PyEval_EvalCodeEx ()
#15 0x0813b6ac in PyEval_EvalFrameEx ()
#16 0x081417f0 in PyEval_EvalCodeEx ()
#17 0x0819ad51 in PyRun_FileExFlags ()
#18 0x0819c61a in PyRun_SimpleFileExFlags ()
#19 0x0819d6a8 in Py_Main ()
#20 0x0806109b in main ()
(gdb) 

Is there some easy way to dump the offending sentence.
									Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html



Information forwarded to debian-bugs-dist@lists.debian.org, Bernd Zeimetz <bzed@debian.org>:
Bug#689187; Package python-gps. (Sun, 30 Sep 2012 18:45:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Pavel Machek <pavel@ucw.cz>:
Extra info received and forwarded to list. Copy sent to Bernd Zeimetz <bzed@debian.org>. (Sun, 30 Sep 2012 18:45:03 GMT) Full text and rfc822 format available.

Message #22 received at 689187@bugs.debian.org (full text, mbox):

From: Pavel Machek <pavel@ucw.cz>
To: Bernd Zeimetz <bernd@bzed.de>
Cc: 689187@bugs.debian.org, control@bugs.debian.org
Subject: Re: Bug#689187: python-gps: fakegps segfaults on NMEA file
Date: Sun, 30 Sep 2012 20:41:59 +0200
[Message part 1 (text/plain, inline)]
Hi!

> > > fakegps segfaults on many nmea logs I could find. It does so even
> > > without all the debugging options.
> > 
> > please provide the nmea files.
> 
> The file I can reproduce it is rather big (7MB). I tried shorter
> sections, but no luck. I can send it to you, but would prefer it not
> be redistributed; would that be feasible?

Ok, here's smaller testcase, I did a bit of bisection and now I have
smaller test.

Can you try with this one?
								Pavel
[test.nmea (text/plain, attachment)]

Information forwarded to debian-bugs-dist@lists.debian.org, Bernd Zeimetz <bzed@debian.org>:
Bug#689187; Package python-gps. (Mon, 01 Oct 2012 09:30:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to bzed <bernd@bzed.de>:
Extra info received and forwarded to list. Copy sent to Bernd Zeimetz <bzed@debian.org>. (Mon, 01 Oct 2012 09:30:03 GMT) Full text and rfc822 format available.

Message #27 received at 689187@bugs.debian.org (full text, mbox):

From: bzed <bernd@bzed.de>
To: Pavel Machek <pavel@ucw.cz>, <689187@bugs.debian.org>
Subject: Re: Bug#689187: python-gps: fakegps segfaults on NMEA file
Date: Mon, 01 Oct 2012 11:25:56 +0200
Hi,

> Can you try with this one?

segfaults here, too.
At least I've got an almost useful backtrace.

(gdb) bt full
#0  0x00007f875872e732 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#1  0x00007f8757ac8961 in packet_discard (lexer=lexer@entry=0x1f23480) 
at packet.c:1363
        discard = 5637
        remaining = 18446744073709547012
#2  0x00007f8757acc6b8 in packet_get (fd=3, 
lexer=lexer@entry=0x1f23480) at packet.c:2025
        recvd = <optimized out>
#3  0x00007f8757ac83f0 in Lexer_get (self=0x1f23470, args=<optimized 
out>) at gpspacket.c:80
        len = <optimized out>
        fd = 3
#4  0x00000000004a483f in call_function (oparg=<optimized out>, 
pp_stack=0x7fff98a3b6c0) at ../Python/ceval.c:3750
        callargs = (3,)
        flags = <optimized out>
        tstate = <optimized out>
        func = <built-in method get of gps.packet.lexer object at 
remote 0x1f23470>
        w = <optimized out>
        na = <optimized out>
        nk = <optimized out>
        n = <optimized out>
        pfunc = 0x1f22ed0
        x = <optimized out>
#5  PyEval_EvalFrameEx (f=f@entry=
    Frame 0x1f22ce0, for file 
/usr/lib/python2.6/dist-packages/gps/fake.py, line 118, in __init__ 
(self=<TestLoad(name='test.nmea', predump=False, logfp=<file at remote 
0x7f8759add420>, sentences=[0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], serial=None, 
logfile='test.nmea', type=None, sourcetype='pty') at remote 
0x7f8759ae20e0>, logfp=<file at remote 0x7f8759add420>, predump=False, 
getter=<gps.packet.lexer at remote 0x1f23470>, type_latch=1, plen=38, 
ptype=1, packet='$PGLOR,FIX,1.0,ST,U,NS,A,DR,N,PS,A*2A\n', 
counter=5527), throwflag=throwflag@entry=0) at ../Python/ceval.c:2412
        sp = 0x1f22ed8
        stack_pointer = 0x1f22ee0
        next_instr = 0x1ed228c "\\\004"
        opcode = <optimized out>
        oparg = <optimized out>
        why = WHY_NOT
        err = 0
        x = <optimized out>
        v = <optimized out>
        w = <optimized out>
        u = <optimized out>
        t = <optimized out>
        stream = 0x0
        fastlocals = 0x1f22e58
        freevars = 0x1f22ed0
        retval = 0x0
        tstate = 0x1da40a0
        co = 0x7f8759b61f30
        instr_ub = -1
        instr_lb = 0
        instr_prev = -1
        first_instr = 0x1ed21e4 "g"
        names =
    ('sentences', 'type', 'open', 'name', 'logfp', 'predump', 
'logfile', 'None', 'sourcetype', 'serial', 'sniffer', 'new', 'True', 
'get', 'fileno', 'COMMENT_PACKET', 'strip', 'split', 'int', 
'ValueError', 'IndexError', 'TestLoadError', 'repr', 'append', 
'NMEA_PACKET', 'textual', 'legend')
        consts =
    (None, '', 'r', 'pty', 0, 'Serial:', 1, '7', '8', 'N', 'O', 'E', 2, 
'1', '2', 'bad serial-parameter spec in %s', 'UDP', 'zero-length packet 
from %s', 'gpsfake: line %d: ', 'gpsfake: packet %d', ('7', '8'), ('N', 
'O', 'E'), ('1', '2'))
#6  0x000000000049f0b2 in PyEval_EvalCodeEx (co=<optimized out>, 
globals=<optimized out>, locals=locals@entry=<unknown at remote 
0x7f8759b49fa8>, args=args@entry=0x7f8759b8d338, argcount=2, 
kws=kws@entry=
    0x1ee24f0, kwcount=kwcount@entry=1, defs=defs@entry=0x7f8759b49fa8, 
defcount=defcount@entry=1, closure=closure@entry=0x0) at 
../Python/ceval.c:3000
        f = <optimized out>
        retval = 0x0
        fastlocals = <optimized out>
        freevars = <optimized out>
        tstate = 0x1da40a0
        x = <optimized out>
        u = <optimized out>
#7  0x000000000053735e in function_call (func=<function at remote 
0x7f8759ad8500>, arg=
    (<TestLoad(name='test.nmea', predump=False, logfp=<file at remote 
0x7f8759add420>, sentences=[0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ---Type 
<return> to continue, or q <return> to quit---~
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], serial=None, 
logfile='test.nmea', type=None, sourcetype='pty') at remote 
0x7f8759ae20e0>, 'test.nmea'), kw=<optimized out>) at 
../Objects/funcobject.c:524
        result = <optimized out>
        argdefs = <optimized out>
        d = 0x7f8759b49fa8
        k = 0x1ee24f0
        nk = <optimized out>
        nd = 1
#8  0x000000000042497a in PyObject_Call (func=func@entry=<function at 
remote 0x7f8759ad8500>, arg=arg@entry=
    (<TestLoad(name='test.nmea', predump=False, logfp=<file at remote 
0x7f8759add420>, sentences=[0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], serial=None, 
logfile='test.nmea', type=None, sourcetype='pty') at remote 
0x7f8759ae20e0>, 'test.nmea'), kw=kw@entry={'predump': False}) at 
../Objects/abstract.c:2492
        result = <optimized out>
        call = 0x5371b0 <function_call>
#9  0x00000000004295e0 in instancemethod_call (func=<function at remote 
0x7f8759ad8500>, arg=
    (<TestLoad(name='test.nmea', predump=False, logfp=<file at remote 
0x7f8759add420>, sentences=[0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], serial=None, 
logfile='test.nmea', type=None, sourcetype='pty') at remote 
0x7f8759ae20e0>, 'test.nmea'), kw={'predump': False}) at 
../Objects/classobject.c:2579
        self =
    <TestLoad(name='test.nmea', predump=False, logfp=<file at remote 
0x7f8759add420>, sentences=[0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], serial=None, 
logfile='test.nmea', type=None, sourcetype='pty') at remote 
0x7f8759ae20e0>
        klass = <optimized out>
        result = <optimized out>
#10 0x000000000042497a in PyObject_Call 
(func=func@entry=<instancemethod at remote 0x7f8759b7ea00>, 
arg=arg@entry=('test.nmea',), kw=<optimized out>) at 
../Objects/abstract.c:2492
        result = <optimized out>
        call = 0x429550 <instancemethod_call>
#11 0x00000000004a52d7 in PyEval_CallObjectWithKeywords 
(func=func@entry=<instancemethod at remote 0x7f8759b7ea00>, 
arg=arg@entry=('test.nmea',), kw=kw@entry={'predump': False}) at 
../Python/ceval.c:3619
        result = <optimized out>
#12 0x000000000042f3d7 in PyInstance_New (klass=<optimized out>, 
arg=('test.nmea',), kw={'predump': False}) at 
../Objects/classobject.c:568
        res = <optimized out>
        inst = 0x7f8759ae20e0
        init = <instancemethod at remote 0x7f8759b7ea00>
        initstr = '__init__'
#13 0x000000000042497a in PyObject_Call (func=func@entry=<classobj at 
remote 0x7f8759b4bbf0>, arg=arg@entry=('test.nmea',), 
kw=kw@entry={'predump': False}) at ../Objects/abstract.c:2492
        result = <optimized out>
        call = 0x42f360 <PyInstance_New>
#14 0x00000000004a1799 in do_call (nk=<optimized out>, na=<optimized 
out>, pp_stack=0x7fff98a3bd10, func=<classobj at remote 0x7f8759b4bbf0>) 
at ../Python/ceval.c:3968
        callargs = <optimized out>
        kwdict = {'predump': False}
        result = 0x0
#15 call_function (oparg=<optimized out>, pp_stack=0x7fff98a3bd10) at 
../Python/ceval.c:3773
        func = <classobj at remote 0x7f8759b4bbf0>
        w = <optimized out>
        na = <optimized out>
        nk = <optimized out>
        n = <optimized out>
        pfunc = 0x1f22b48
        x = <optimized out>
#16 PyEval_EvalFrameEx (f=f@entry=
    Frame 0x1f229a0, for file 
/usr/lib/python2.6/dist-packages/gps/fake.py, line 447, in gps_add 
(self=<TestSession(index=0, udp=False, verbose=0, predump=False, 
readers=0, fd_set=[], reporter=<function at remote 0x7f8759b4aed8>, 
daemon=<DaemonInstance(pid=30107, sockfile=None, tmpdir='/tmp', 
spawncmd='/usr/sbin/gpsd -b -N -S 2947 -F /tmp/gpsfake-30105.sock -P 
/tmp/gpsfake-30105.pid  &', control_socket='/tmp/gpsfake-30105.sock', 
pidfile='/tmp/gpsfake-30105.pid') at remote 0x7f8759ae2f38>, options='', 
runqueue=[], prefix='', writers=0, threadlock=None, client_id=0, 
default_predicate=None, progress=<function at remote 0x7f8759b45ed8>, 
port='2947', fakegpslist={}) at remote 0x7f8759b8c098>, 
logfile='test.nmea', speed=4800, pred=<function at remote 
0x7f8759b45d70>), throwflag=throwflag@entry=0) at ../Python/ceval.c:2412
        sp = 0x1f22b50
        stack_pointer = <optimized out>
        next_instr = 0x1ed471d "}\004"
        opcode = <optimized out>
        oparg = <optimized out>
        why = WHY_NOT
        err = 0
        x = <optimized out>
        v = <optimized out>
        w = <optimized out>
---Type <return> to continue, or q <return> to quit---
        u = <optimized out>
        t = <optimized out>
        stream = 0x0
        fastlocals = 0x1f22b18
        freevars = 0x1f22b48
        retval = 0x0
        tstate = 0x1da40a0
        co = 0x7f8759b4a7b0
        instr_ub = -1
        instr_lb = 0
        instr_prev = -1
        first_instr = 0x1ed46e4 "|"
        names = ('progress', 'fakegpslist', 'TestLoad', 'predump', 
'sourcetype', 'udp', 'FakeUDP', 'FakePTY', 'go_predicate', 
'default_predicate', 'byname', 'append', 'exhausted', 'daemon', 
'add_device')
        consts = ('Add a simulated GPS being fed by the specified 
logfile.', 'gpsfake: gps_add(%s, %d)\n', 'predump', 'UDP', 'ipaddr', 
'127.0.0.1', 'port', '5000', 'progress', 'speed', 0)
#17 0x000000000049f0b2 in PyEval_EvalCodeEx (co=<optimized out>, 
globals=<optimized out>, locals=locals@entry=0x0, args=<optimized out>, 
argcount=argcount@entry=2, kws=0x1e45320, kwcount=kwcount@entry=2,
    defs=0x7f8759aec380, defcount=2, closure=0x0) at 
../Python/ceval.c:3000
        f = <optimized out>
        retval = 0x0
        fastlocals = <optimized out>
        freevars = <optimized out>
        tstate = 0x1da40a0
        x = <optimized out>
        u = <optimized out>
#18 0x00000000004a3434 in fast_function (nk=2, na=2, n=<optimized out>, 
pp_stack=0x7fff98a3bf90, func=<function at remote 0x7f8759af2938>) at 
../Python/ceval.c:3846
        co = <optimized out>
        nd = <optimized out>
        globals = <optimized out>
        argdefs = <optimized out>
        d = <optimized out>
#19 call_function (oparg=<optimized out>, pp_stack=0x7fff98a3bf90) at 
../Python/ceval.c:3771
        func = <function at remote 0x7f8759af2938>
        w = <optimized out>
        na = 2
        nk = 2
        n = <optimized out>
        pfunc = 0x1e45310
        x = <optimized out>
#20 PyEval_EvalFrameEx (f=f@entry=Frame 0x1e45190, for file 
/usr/bin/gpsfake, line 177, in <module> (), throwflag=throwflag@entry=0) 
at ../Python/ceval.c:2412
        sp = 0x1e45340
        stack_pointer = <optimized out>
        next_instr = 0x1e59d29 "\001Wq4\004\004e\t"
        opcode = <optimized out>
        oparg = <optimized out>
        why = WHY_NOT
        err = 0
        x = <optimized out>
        v = <optimized out>
        w = <optimized out>
        u = <optimized out>
        t = <optimized out>
        stream = 0x0
        fastlocals = 0x1e45308
        freevars = 0x1e45308
        retval = 0x0
        tstate = 0x1da40a0
        co = 0x7f8759bbd0a8
        instr_ub = -1
        instr_lb = 0
        instr_prev = -1
        first_instr = 0x1e598d4 "d"
        names =
    ('sys', 'os', 'time', 'getopt', 'socket', 'random', 'gps', 
'gps.fake', 'fake', 'gpsfake', 'Baton', 'fakeport', 'hexdump', 
'fakehook', '__name__', 'argv', 'options', 'arguments', 'GetoptError', 
'msg', 'str', 'SystemExit', 'None', 'port', 'False', 'progress', 
'cycle', 'monitor', 'speed', 'linedump', 'predump', 'pipe', 
'singleshot', 'promptme', 'client_init', 'doptions', 'udp', 'verbose', 
'switch', 'val', 'True', 'float', 'int', 'stderr', 'write', 'join', 
'baton', 'TestSession', 'test', 'stdout', 'reporter', 'spawn', 
'logfile', 'gps_add', 'TestLoadError', 'e', 'PacketError', 
'DaemonError', 'IOError', 'filename', 'OSError', 'client_add', 'sleep', 
'run', 'error', 'client', 'json_error', 'data', 'explanation', 
'cleanup', 'end')
        consts =
    (-1, None, 'Baton', <code at remote 0x7f8759bad198>, <code at 
remote 0x7f8759bad468>, <code at remote 0x7f8759bb67b0>, <code at remote 
0x7f8759bb6120>, '__main__', 1, '1bc:D:fghilm:no:pP:r:s:uvx', 
'gpsfake---Type <return> to continue, or q <return> to quit---
: ', 0, '', 4800, '?WATCH={"json":true,"nmea":true}', '-1', '-f', '-b', 
'-c', '-D', ' -D ', '-g', 'xterm -e gdb -tui --args ', '-i', '-l', '-m', 
' ', '-n', ' -n', '-x', '-o', '-p', '-P', '-r', '-s', '-u', '-v', '-h', 
'usage: gpsfake [-h] [-l] [-m monitor] [--D debug] [-o options] [-p] [-s 
speed] [-c cycle] [-b] logfile\n', 'gpsfake: requires at least one 
logfile argument.', 'Processing %s', ',', 'done', 'prefix', 'port', 
'options', 'udp', 'verbose', 'predump', 'speed', 'pred', '\n', 'gpsfake: 
no such file as %s or file unreadable\n', "gpsfake: can't open pty.\n", 
'gpsfake: socket error %s.\n', 'gpsfake: JSON error on line %s is 
%s.\n', ())
#21 0x000000000049f0b2 in PyEval_EvalCodeEx 
(co=co@entry=0x7f8759bbd0a8, globals=globals@entry=
    {'verbose': 0, 'random': <module at remote 0x7f8759b5b130>, 
'fakehook': <function at remote 0x7f8759b45d70>, 'Baton': <classobj at 
remote 0x7f8759b1ac50>, 'speed': 4800, 'port': None, 'hexdump': 
<function at remote 0x7f8759b45b18>, 'monitor': '', 'gpsfake': <module 
at remote 0x7f8759b4f050>, '__package__': None, 'arguments': 
['test.nmea'], 'fakeport': <function at remote 0x7f8759b59500>, 'test': 
<TestSession(index=0, udp=False, verbose=0, predump=False, readers=0, 
fd_set=[], reporter=<function at remote 0x7f8759b4aed8>, 
daemon=<DaemonInstance(pid=30107, sockfile=None, tmpdir='/tmp', 
spawncmd='/usr/sbin/gpsd -b -N -S 2947 -F /tmp/gpsfake-30105.sock -P 
/tmp/gpsfake-30105.pid  &', control_socket='/tmp/gpsfake-30105.sock', 
pidfile='/tmp/gpsfake-30105.pid') at remote 0x7f8759ae2f38>, options='', 
runqueue=[], prefix='', writers=0, threadlock=None, client_id=0, 
default_predicate=None, progress=<function at remote 0x7f8759b45ed8>, 
port='2947', fakegpslist={}) at remote 0x7f8759b8c098>, 'progress': 
False, 'doptions': ...(truncated),
    locals=locals@entry=
    {'verbose': 0, 'random': <module at remote 0x7f8759b5b130>, 
'fakehook': <function at remote 0x7f8759b45d70>, 'Baton': <classobj at 
remote 0x7f8759b1ac50>, 'speed': 4800, 'port': None, 'hexdump': 
<function at remote 0x7f8759b45b18>, 'monitor': '', 'gpsfake': <module 
at remote 0x7f8759b4f050>, '__package__': None, 'arguments': 
['test.nmea'], 'fakeport': <function at remote 0x7f8759b59500>, 'test': 
<TestSession(index=0, udp=False, verbose=0, predump=False, readers=0, 
fd_set=[], reporter=<function at remote 0x7f8759b4aed8>, 
daemon=<DaemonInstance(pid=30107, sockfile=None, tmpdir='/tmp', 
spawncmd='/usr/sbin/gpsd -b -N -S 2947 -F /tmp/gpsfake-30105.sock -P 
/tmp/gpsfake-30105.pid  &', control_socket='/tmp/gpsfake-30105.sock', 
pidfile='/tmp/gpsfake-30105.pid') at remote 0x7f8759ae2f38>, options='', 
runqueue=[], prefix='', writers=0, threadlock=None, client_id=0, 
default_predicate=None, progress=<function at remote 0x7f8759b45ed8>, 
port='2947', fakegpslist={}) at remote 0x7f8759b8c098>, 'progress': 
False, 'doptions': ...(truncated),
    args=args@entry=0x0, argcount=argcount@entry=0, kws=kws@entry=0x0, 
kwcount=kwcount@entry=0, defs=defs@entry=0x0, defcount=defcount@entry=0, 
closure=closure@entry=0x0) at ../Python/ceval.c:3000
        f = <optimized out>
        retval = 0x0
        fastlocals = <optimized out>
        freevars = <optimized out>
        tstate = 0x1da40a0
        x = <optimized out>
        u = <optimized out>
#22 0x000000000049f1f2 in PyEval_EvalCode (co=co@entry=0x7f8759bbd0a8, 
globals=globals@entry=
    {'verbose': 0, 'random': <module at remote 0x7f8759b5b130>, 
'fakehook': <function at remote 0x7f8759b45d70>, 'Baton': <classobj at 
remote 0x7f8759b1ac50>, 'speed': 4800, 'port': None, 'hexdump': 
<function at remote 0x7f8759b45b18>, 'monitor': '', 'gpsfake': <module 
at remote 0x7f8759b4f050>, '__package__': None, 'arguments': 
['test.nmea'], 'fakeport': <function at remote 0x7f8759b59500>, 'test': 
<TestSession(index=0, udp=False, verbose=0, predump=False, readers=0, 
fd_set=[], reporter=<function at remote 0x7f8759b4aed8>, 
daemon=<DaemonInstance(pid=30107, sockfile=None, tmpdir='/tmp', 
spawncmd='/usr/sbin/gpsd -b -N -S 2947 -F /tmp/gpsfake-30105.sock -P 
/tmp/gpsfake-30105.pid  &', control_socket='/tmp/gpsfake-30105.sock', 
pidfile='/tmp/gpsfake-30105.pid') at remote 0x7f8759ae2f38>, options='', 
runqueue=[], prefix='', writers=0, threadlock=None, client_id=0, 
default_predicate=None, progress=<function at remote 0x7f8759b45ed8>, 
port='2947', fakegpslist={}) at remote 0x7f8759b8c098>, 'progress': 
False, 'doptions': ...(truncated),
    locals=locals@entry=
    {'verbose': 0, 'random': <module at remote 0x7f8759b5b130>, 
'fakehook': <function at remote 0x7f8759b45d70>, 'Baton': <classobj at 
remote 0x7f8759b1ac50>, 'speed': 4800, 'port': None, 'hexdump': 
<function at remote 0x7f8759b45b18>, 'monitor': '', 'gpsfake': <module 
at remote 0x7f8759b4f050>, '__package__': None, 'arguments': 
['test.nmea'], 'fakeport': <function at remote 0x7f8759b59500>, 'test': 
<TestSession(index=0, udp=False, verbose=0, predump=False, readers=0, 
fd_set=[], reporter=<function at remote 0x7f8759b4aed8>, 
daemon=<DaemonInstance(pid=30107, sockfile=None, tmpdir='/tmp', 
spawncmd='/usr/sbin/gpsd -b -N -S 2947 -F /tmp/gpsfake-30105.sock -P 
/tmp/gpsfake-30105.pid  &', control_socket='/tmp/gpsfake-30105.sock', 
pidfile='/tmp/gpsfake-30105.pid') at remote 0x7f8759ae2f38>, options='', 
runqueue=[], prefix='', writers=0, threadlock=None, client_id=0, 
default_predicate=None, progress=<function at remote 0x7f8759b45ed8>, 
port='2947', fakegpslist={}) at remote 0x7f8759b8c098>, 'progress': 
False, 'doptions': ...(truncated))
    at ../Python/ceval.c:541
No locals.
#23 0x00000000004c66df in run_mod (arena=0x1e02ce0, 
flags=0x7fff98a3c220, locals=
    {'verbose': 0, 'random': <module at remote 0x7f8759b5b130>, 
'fakehook': <function at remote 0x7f8759b45d70>, 'Baton': <classobj at 
remote 0x7f8759b1ac50>, 'speed': 4800, 'port': None, 'hexdump': 
<function at remote 0x7f8759b45b18>, 'monitor': '', 'gpsfake': <module 
at remote 0x7f8759b4f050>, '__package__': None, 'arguments': 
['test.nmea'], 'fakeport': <function at remote 0x7f8759b59500>, 'test': 
<TestSession(index=0, udp=False, verbose=0, predump=False, readers=0, 
fd_set=[], reporter=<function at remote 0x7f8759b4aed8>, 
daemon=<DaemonInstance(pid=30107, sockfile=None, tmpdir='/tmp', 
spawncmd='/usr/sbin/gpsd -b -N -S 2947 -F /tmp/gpsfake-30105.sock -P 
/tmp/gpsfake-30105.pid  &', control_socket='/tmp/gpsfake-30105.sock', 
pidfile='/tmp/gpsfake-30105.pid') at remote 0x7f8759ae2f38>, options='', 
runqueue=[], prefix='', writers=0, threadlock=None, client_id=0, 
default_predicate=None, progress=<function at remote 0x7f8759b45ed8>, 
port='2947', fakegpslist={}) at remote 0x7f8759b8c098>, 'progress': 
False, 'doptions': ...(truncated),
    globals=
    {'verbose': 0, 'random': <module at remote 0x7f8759b5b130>, 
'fakehook': <function at remote 0x7f8759b45d70>, 'Baton': <classobj at 
remote 0x7f8759b1ac50>, 'speed': 4800, 'port': None, 'hexdump': 
<function at remote 0x7f8759b45b18>, 'monitor': '', 'gpsfake': <module 
at remote 0x7f8759b4f050>, '__package__': None, 'arguments': 
['test.nmea'], 'fakeport': <function at remote 0x7f8759b59500>, 'test': 
<TestSession(index=0, udp=False, verbose=0, predump=False, readers=0, 
fd_set=[], reporter=<function at remote 0x7f8759b4aed8>, 
daemon=<DaemonInstance(pid=30107, sockfile=None, tmpdir='/tmp', 
spawncmd='/usr/sbin/gpsd -b -N -S 2947 -F /tmp/gpsfake-30105.sock -P 
/tmp/gpsfake-30105.pid  &', control_socket='/tmp/gpsfake-30105.sock', 
pidfile='/tmp/gpsfake-30105.pid') at remote 0x7f8759ae2f38>, options='', 
runqueue=[], prefix='', writers=0, threadlock=None, client_id=0, 
default_predicate=None, progress=<function at remote 0x7f8759b45ed8>, 
port='2947', fakegpslist={}) at remote 0x7f8759b8c098>, 'progress': 
False, 'doptions': ...(truncated),
    filename=0x7fff98a3c793 "/usr/bin/gpsfake", mod=0x1e4faa8) at 
../Python/pythonrun.c:1358
        co = 0x7f8759bbd0a8
        v = <optimized out>
#24 PyRun_FileExFlags (fp=fp@entry=0x1e2bf50, 
filename=filename@entry=0x7fff98a3c793 "/usr/bin/gpsfake", 
start=start@entry=257, globals=globals@entry=
    {'verbose': 0, 'random': <module at remote 0x7f8759b5b130>, 
'fakehook': <function at remote 0x7f8759b45d70>, 'Baton': <classobj at 
remote 0x7f8759b1ac50>, 'speed': 4800, 'port': None, 'hexdump': 
<function at remote 0x7f8759b45b18>, 'monitor': '', 'gpsfake': <module 
at remote 0x7f8759b4f050>, '__package__': None, 'arguments': 
['test.nmea'], 'fakeport': <function at remote 0x7f8759b59500>, 'test': 
<TestSession(index=0, udp=False, verbose=0, predump=False, readers=0, 
fd_set=[], reporter=<function at remote 0x7f8759b4aed8>, 
daemon=<DaemonInstance(pid=30107, sockfile=None, tmpdir='/tmp', 
spawncmd='/usr/sbin/gpsd -b -N -S 2947 -F /tmp/gpsfake-30105.sock -P 
/tmp/gpsfake-30105.pid  &', control_socket='/tmp/gpsfake-30105.sock', 
pidfile='/tmp/gpsfake-30105.pid') at remote 0x7f8759ae2f38>, options='', 
runqueue=[], prefix='', writers=0, threadlock=None, client_id=0, 
default_predicate=None, progress=<function at remote 0x7f8759b45ed8>, 
port='2947', fakegpslist={}) at remote 0x7f8759b8c098>, 'progress': 
False, 'doptions': ...(truncated),
    locals=locals@entry=
    {'verbose': 0, 'random': <module at remote 0x7f8759b5b130>, 
'fakehook': <function at remote 0x7f8759b45d70>, 'Baton': <classobj at 
remote 0x7f8759b1ac50>, 'speed': 4800, 'port': None, 'hexdump': 
<function at remote 0x7f8759b45b18>, 'monitor': '', 'gpsfake': <module 
at remote 0x7f8759b4f050>, '__package__': None, 'arguments': 
['test.nmea'], 'fakeport': <function at remote 0x7f8759b59500>, 'test': 
<TestSession(index=0, udp=False, verbose=0, predump=False, readers=0, 
fd_set=[], reporter=<function at remote 0x7f8759b4aed8>, 
daemon=<DaemonInstance(pid=30107, sockfile=None, tmpdir='/tmp', 
spawncmd='/usr/sbin/gpsd -b -N -S 2947 -F /tmp/gpsfake-30105.sock -P 
/tmp/gpsfake-30105.pid  &', control_socket='/tmp/gpsfake-30105.sock', 
pidfile='/tmp/gpsfake-30105.pid') at remote 0x7f8759ae2f38>, options='', 
runqueue=[], prefix='', writers=0, threadlock=None, client_id=0, 
default_predicate=None, progress=<function at remote 0x7f8759b45ed8>, 
port='2947', fakegpslist={}) at remote 0x7f8759b8c098>, 'progress': 
False, 'doptions': ...(truncated),
    closeit=closeit@entry=1, flags=flags@entry=0x7fff98a3c220) at 
../Python/pythonrun.c:1344
        ret = <unknown at remote 0x7fff98a3c793>
---Type <return> to continue, or q <return> to quit---
        mod = 0x1e4faa8
        arena = 0x1e02ce0
#25 0x00000000004c7a17 in PyRun_SimpleFileExFlags 
(fp=fp@entry=0x1e2bf50, filename=0x7fff98a3c793 "/usr/bin/gpsfake", 
closeit=1, flags=flags@entry=0x7fff98a3c220) at 
../Python/pythonrun.c:948
        m = <optimized out>
        d =
    {'verbose': 0, 'random': <module at remote 0x7f8759b5b130>, 
'fakehook': <function at remote 0x7f8759b45d70>, 'Baton': <classobj at 
remote 0x7f8759b1ac50>, 'speed': 4800, 'port': None, 'hexdump': 
<function at remote 0x7f8759b45b18>, 'monitor': '', 'gpsfake': <module 
at remote 0x7f8759b4f050>, '__package__': None, 'arguments': 
['test.nmea'], 'fakeport': <function at remote 0x7f8759b59500>, 'test': 
<TestSession(index=0, udp=False, verbose=0, predump=False, readers=0, 
fd_set=[], reporter=<function at remote 0x7f8759b4aed8>, 
daemon=<DaemonInstance(pid=30107, sockfile=None, tmpdir='/tmp', 
spawncmd='/usr/sbin/gpsd -b -N -S 2947 -F /tmp/gpsfake-30105.sock -P 
/tmp/gpsfake-30105.pid  &', control_socket='/tmp/gpsfake-30105.sock', 
pidfile='/tmp/gpsfake-30105.pid') at remote 0x7f8759ae2f38>, options='', 
runqueue=[], prefix='', writers=0, threadlock=None, client_id=0, 
default_predicate=None, progress=<function at remote 0x7f8759b45ed8>, 
port='2947', fakegpslist={}) at remote 0x7f8759b8c098>, 'progress': 
False, 'doptions': ...(truncated)
        v = <optimized out>
        ext = <optimized out>
        set_file_name = 1
        ret = <optimized out>
        len = <optimized out>
#26 0x00000000004c8319 in PyRun_AnyFileExFlags (fp=fp@entry=0x1e2bf50, 
filename=<optimized out>, closeit=<optimized out>, 
flags=flags@entry=0x7fff98a3c220) at ../Python/pythonrun.c:752
No locals.
#27 0x000000000041b163 in Py_Main (argc=<optimized out>, 
argv=<optimized out>) at ../Modules/main.c:617
        c = <optimized out>
        sts = <optimized out>
        command = 0x0
        filename = 0x7fff98a3c793 "/usr/bin/gpsfake"
        module = 0x0
        fp = 0x1e2bf50
        p = <optimized out>
        unbuffered = <optimized out>
        skipfirstline = 0
        stdin_is_interactive = 1
        help = <optimized out>
        version = <optimized out>
        saw_unbuffered_flag = 1
        cf = {cf_flags = 0}
#28 0x00007f8758620ead in __libc_start_main () from 
/lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#29 0x000000000041a421 in _start ()
No symbol table info available.
(gdb)





Information forwarded to debian-bugs-dist@lists.debian.org, Bernd Zeimetz <bzed@debian.org>:
Bug#689187; Package python-gps. (Tue, 23 Oct 2012 15:21:06 GMT) Full text and rfc822 format available.

Acknowledgement sent to esr@thyrsus.com (Eric S. Raymond):
Extra info received and forwarded to list. Copy sent to Bernd Zeimetz <bzed@debian.org>. (Tue, 23 Oct 2012 15:21:06 GMT) Full text and rfc822 format available.

Message #32 received at 689187@bugs.debian.org (full text, mbox):

From: esr@thyrsus.com (Eric S. Raymond)
To: 689187@bugs.debian.org
Subject: Tracking down the gpsfake segfault
Date: Tue, 23 Oct 2012 11:10:37 -0400 (EDT)
Pavel, it looks like you've uncovered a bug somewhere in the NMEA 
packet driver.  Try running your bad log through gpsdecode, please?
That will exercise the packet driver in a way that is isolated
from all the Python complications.

If you can reproduce with gpsdecode, try building with debug=yes
and then repeating the test under gdb.  That might show the offending
line of source code.

To dump each packet before it's analyzed, use -v.  The last one
shown before the core dump will be the interesting one.
-- 
		<a href="http://www.catb.org/~esr/">Eric S. Raymond</a>

Certainly one of the chief guarantees of freedom under any government,
no matter how popular and respected, is the right of the citizens to
keep and bear arms.  [...] the right of the citizens to bear arms is
just one guarantee against arbitrary government and one more safeguard
against a tyranny which now appears remote in America, but which
historically has proved to be always possible.
        -- Hubert H. Humphrey, 1960



Information forwarded to debian-bugs-dist@lists.debian.org, Bernd Zeimetz <bzed@debian.org>:
Bug#689187; Package python-gps. (Fri, 18 Apr 2014 02:18:04 GMT) Full text and rfc822 format available.

Acknowledgement sent to Denys Berkovskyy <berkovskyy@gmail.com>:
Extra info received and forwarded to list. Copy sent to Bernd Zeimetz <bzed@debian.org>. (Fri, 18 Apr 2014 02:18:04 GMT) Full text and rfc822 format available.

Message #37 received at 689187@bugs.debian.org (full text, mbox):

From: Denys Berkovskyy <berkovskyy@gmail.com>
To: 689187@bugs.debian.org
Subject: RE: Bug#689187: python-gps: fakegps segfaults on NMEA file
Date: Fri, 18 Apr 2014 03:14:58 +0100
I tried reproducing the bug using python-gpsversion 3.6-4+deb7u1 and did 
not observe the segfault. It looks like this bug is fixed in current 
version. Should it be closed?



Send a report that this bug log contains spam.


Debian bug tracking system administrator <owner@bugs.debian.org>. Last modified: Sun Apr 20 21:50:54 2014; Machine Name: buxtehude.debian.org

Debian Bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.