[mythtv] mythfrontend segfault

Stuart Auchterlonie stuarta at squashedfrog.net
Fri Nov 18 06:38:03 EST 2005


On Fri, Nov 18, 2005 at 02:23:26AM -0500, dave sailer wrote:
> dave sailer wrote:
> 
> >dave sailer wrote:
> >
> >>i had a working mythfrontend that suddenly started to segfault while 
> >>playing live tv. It plays recorded content ok. I'm using gentoo and 
> >>the only  way i could figure out how to compile with debug was to 
> >>download the tar and install from source so I have a gentoo/emerge 
> >>version in /usr/bin/mythfrontend and the newly compiled from source 
> >>version in /usr/local/bin/mythfrontend.  I followed the steps to 
> >>compile for debug but I'm guessing it didn't work (missing symbol 
> >>tables). Here is the output from the full test, which was simply 
> >>starting the frontend and playing live tv. Live tv plays for about 3 
> >>seconds before segfaulting...
> >>
> >>
> >>
> >>myth1 mythtv-0.18.1 # gdb /usr/local/bin/mythfrontend
> >>GNU gdb 6.0
> >>Copyright 2003 Free Software Foundation, Inc.
> >>GDB is free software, covered by the GNU General Public License, and 
> >>you are
> >>welcome to change it and/or distribute copies of it under certain 
> >>conditions.
> >>Type "show copying" to see the conditions.
> >>There is absolutely no warranty for GDB.  Type "show warranty" for 
> >>details.
> >>This GDB was configured as "i686-pc-linux-gnu"...Using host 
> >>libthread_db library "/lib/libthread_db.so.1".
> >>
> >>
> >I noticed today that this may be related to use of he epg. I get the 
> >same segfault if I try to schedule a recording with the epg.
> >
> >
> >any hints at all?

Firstly make sure you have only one version installed.
If you have /usr/bin/mythfrontend + /usr/local/bin/mythfrontend
sort that out first, since you are testing, delete the one installed
with your distro's package management.

I've found trying to debug the frontend works better if you
attach gdb to the frontend rather than trying to run it under
the frontend.

Start up the frontend (the debug build of course)
Change to another window, or log in from a different machine.
find the pid of the frontend. Then run

gdb /usr/local/bin/mythfrontend <pid>

then gdb will attach itself to the frontend. Do 'cont' instead
of run then do whatever you do to cause it to break. Then you
can get a backtrace.

Finest backtrace method. (gdb commands)

set logging file name-of-logfile-with-backtrace.txt
set logging on
thread apply all bt full
set logging off


Stuart



More information about the mythtv-dev mailing list