[mythtv] crash mythfrontend (OSDTypeEditSlider::Reinit)
Jim Westfall
jwestfall at surrealistic.net
Sat Mar 5 23:12:23 UTC 2005
The crash is in frame #10
(gdb) f 10
#10 0xb7c75d1c in OSDTypeEditSlider::Reinit(float, float, float, float) (
this=0xb41faad0, wchange=inf, hchange=inf, wmult=3, hmult=2.25)
at osdtypes.cpp:1223
1223 m_drawMap = new unsigned char[m_drawwidth + 1];
(gdb) print m_drawwidth
$2 = -2147483648
The underlying problem looks like NuppelVideoPlayer can create a new
OSD object with bogus height/width data as seen in the backtrace below this
one. This is causing m_hmult and m_wmult to be zero. When OSDSet::Reinit
is called its breaking the following code.
float wchange = wmult / m_wmult;
float hchange = hmult / m_hmult;
resulting in wchange/hchange both being inf.
jim
(gdb) bt full
#0 0xb69ef7b1 in kill () from /lib/libc.so.6
No symbol table info available.
#1 0xb6bbb729 in pthread_kill () from /lib/libpthread.so.0
No symbol table info available.
#2 0xb6bbba7d in raise () from /lib/libpthread.so.0
No symbol table info available.
#3 0xb69ef404 in raise () from /lib/libc.so.6
No symbol table info available.
#4 0xb69f0a58 in abort () from /lib/libc.so.6
No symbol table info available.
#5 0xb6b8b103 in __cxa_call_unexpected ()
from /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/libstdc++.so.5
No symbol table info available.
#6 0xb6b8b136 in std::terminate() ()
from /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/libstdc++.so.5
No symbol table info available.
#7 0xb6b8b281 in __cxa_throw ()
from /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/libstdc++.so.5
No symbol table info available.
#8 0xb6b8b48d in operator new(unsigned) ()
from /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/libstdc++.so.5
No symbol table info available.
#9 0xb6b8b54b in operator new[](unsigned) ()
from /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/libstdc++.so.5
No symbol table info available.
#10 0xb7c75d1c in OSDTypeEditSlider::Reinit(float, float, float, float) (
this=0xb41faad0, wchange=inf, hchange=inf, wmult=3, hmult=2.25)
at osdtypes.cpp:1223
width = -2147483648
height = -2147483648
x = -2147483648
y = -2147483648
#11 0xb7c6fe01 in OSDSet::Reinit(int, int, int, int, int, int, float,
float, in$
screenwidth=1920, screenheight=1088, xoff=0, yoff=0,
displaywidth=1920, displayheight=1080, wmult=3, hmult=2.25,
frint=33366)
at osdtypes.cpp:192
item = (OSDTypeEditSlider *) 0xb41faad0
item = (OSDTypeFillSlider *) 0x0
item = (OSDTypePosSlider *) 0x0
item = (OSDTypePositionImage *) 0x0
item = (OSDTypeText *) 0x0
item = (OSDTypePositionImage *) 0x0
item = (OSDTypeText *) 0x0
type = (class OSDType *) 0xb41faad0
wchange = inf
hchange = inf
iter =
{<iterator<std::random_access_iterator_tag,OSDType*,int,OSDType**,OSDType*&>> = {<No
data fields>}, _M_current = 0x8218a68}
#12 0xb7c5abbd in OSD::Reinit(int, int, int, int, int, int, int) (
this=0xb63abd68, width=1920, height=1088, frint=33366, dispx=0,
dispy=0,
dispw=1920, disph=1080) at osd.cpp:232
set = (class OSDSet *) 0xb41fa858
fonts = {node = 0xb63abad0}
sets = {node = 0xb41fa920}
#13 0xb7c43798 in NuppelVideoPlayer::ReinitOSD() (this=0x82fbe50)
at NuppelVideoPlayer.cpp:458
dispx = 0
dispy = 0
dispw = 1920
disph = 1080
#14 0xb7c43812 in NuppelVideoPlayer::ReinitVideo() (this=0x82fbe50)
at NuppelVideoPlayer.cpp:469
No locals.
#15 0xb7c443fd in NuppelVideoPlayer::SetVideoParams(int, int, double, int, float, FrameScanType,
bool) (this=0x82fbe50, width=1920, height=1088,
fps=29.970029970029969, keyframedistance=15, aspect=1.77777779,
scan=kScan_Detect, reinit=true) at NuppelVideoPlayer.cpp:564
No locals.
...
(gdb)
#0 0xb69ef7b1 in kill () from /lib/libc.so.6
#1 0xb6bbb729 in pthread_kill () from /lib/libpthread.so.0
#2 0xb6bbba7d in raise () from /lib/libpthread.so.0
#3 0xb69ef404 in raise () from /lib/libc.so.6
#4 0xb69f0a58 in abort () from /lib/libc.so.6
#5 0xb7c5f9c3 in OSD::parseSlider(OSDSet*, QDomElement&) (this=0xb65990e0,
container=0x82f6ea8, element=@0xbf1ff744) at osd.cpp:708
#6 0xb7c63c59 in OSD::parseContainer(QDomElement&) (this=0xb65990e0,
element=@0xbf1ff844) at osd.cpp:1084
#7 0xb7c64921 in OSD::LoadTheme() (this=0xb65990e0) at osd.cpp:1166
#8 0xb7c5913a in OSD (this=0xb65990e0, width=0, height=0, frint=-1, dispx=0,
dispy=0, dispw=0, disph=0) at osd.cpp:68
#9 0xb7c4ab1c in NuppelVideoPlayer::StartPlaying() (this=0x82b2600)
at NuppelVideoPlayer.cpp:1816
More information about the mythtv-dev
mailing list