[mythtv] seg fault in mythvideo

Kirby Vandivort kvandivo at ks.uiuc.edu
Tue Sep 23 21:50:26 EDT 2003


Seg fault in mythvideo..  backtrace is attached.  Basically, it
looks like  'it' isn't getting a good value if the list_count is
zero.  I'm not sure if the calling function can handle curitem
being null and that last curitem = can just be deleted or
what.  I'll let someone other than myself handle this.


Basically, I haven't actually done anything with mythvideo before.
Just ripped a dvd using mythdvd and went to mythvideo to look
at it, and hit the 'browse video's button and that is when it
seg faulted.  I can provide any additional information as needed




void VideoBrowser::SetCurrentItem()
{
    ValueMetadata::Iterator it;
                 : 
                 : 
                 : 
                                                                                
    int list_count = m_list.count();
                                                                                
    if(list_count == 0)
    {
        inData = 0;
        allowselect = false;
    }
    else
    {
        if(inData < list_count)
        {
            it = m_list.at(inData);
        }
        else
        {
            inData = 0;
            it = m_list.begin();
        }
                                                                                
        curitem = new Metadata(*(it));
    }
    curitem = new Metadata(*(it));
}





-- 

Kirby Vandivort                      Theoretical and 
Senior Research Programmer            Computational Biophysics 
Email: kvandivo at ks.uiuc.edu          3051 Beckman Institute
http://www.ks.uiuc.edu/~kvandivo/    University of Illinois
Phone: (217) 244-5711                405 N. Mathews Ave
Fax  : (217) 244-6078                Urbana, IL  61801, USA
-------------- next part --------------
GNU gdb 5.3
Copyright 2002 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"...
(no debugging symbols found)...
(gdb) run
Starting program: /usr/bin/mythfrontend 
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...[New Thread 16384 (LWP 4913)]
2003-09-23 20:45:03 Enabled verbose msgs : important general

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16384 (LWP 4913)]
0x408317b0 in QString::operator=(QString const&) ()
   from /usr/qt/3/lib/libqt-mt.so.3
(gdb) thread apply all bt full

Thread 1 (Thread 16384 (LWP 4913)):
#0  0x408317b0 in QString::operator=(QString const&) ()
   from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#1  0x41ab02ec in Metadata (this=0x8559970, other=@0x8) at metadata.h:38
No locals.
#2  0x41ab415b in VideoBrowser::SetCurrentItem() (this=0x8543b78)
    at videobrowser.cpp:374
	it = {node = 0x0}
	list_count = 0
#3  0x41ab1a01 in VideoBrowser (this=0x8543b78, ldb=0x8521208, 
    parent=0x8534800, name=0x41acd9dd "video browser") at videobrowser.cpp:49
No locals.
#4  0x41a9972d in VideoCallback(void*, QString&) (data=0xbfffe810, 
    selection=@0x854c080) at main.cpp:231
	browse = (class VideoBrowser *) 0x409b4128
	mdata = (GenericData *) 0xbfffe810
	sel = {static null = {
    static null = <same as static member of an already seen type>, 
    d = 0x8504640, static shared_null = 0x8504640}, d = 0x85464b0, 
  static shared_null = 0x8504640}
#5  0x400be209 in ThemedMenu::handleAction(QString&) ()
   from /usr/lib/libmyth-0.12.so.0
No symbol table info available.
(gdb) up
#1  0x41ab02ec in Metadata (this=0x8559970, other=@0x8) at metadata.h:38
38	        filename = other.filename;
Current language:  auto; currently c++
(gdb) up
#2  0x41ab415b in VideoBrowser::SetCurrentItem() (this=0x8543b78)
    at videobrowser.cpp:374
374	    curitem = new Metadata(*(it));
(gdb) print it
$1 = {node = 0x0}
(gdb) print list_count
$2 = 0
(gdb) print allowselect
$3 = false
(gdb) quit
Script done on Tue Sep 23 20:45:48 2003


More information about the mythtv-dev mailing list