Hi,
I am trying to get this plugin working with vdr 1.7.7. When I bring it
up from the menu it segmentation faults. The relevant sections from the
backtrace are :
#0 0x00000000004a4b2d in cBitmap::DrawText (this=0x2acb4e0, x=10, y=3,
s=0x7fdb8302fb90 "SysInfo 0.1.0a", ColorFg=4278190080,
ColorBg=2164260863,
Font=0x754040, Width=0, Height=0, Alignment=5) at osd.c:454
454 int w = Font->Width(s);
And the full thread bt is
Thread 1 (process 31944):
#0 0x00000000004a4b2d in cBitmap::DrawText (this=0x2acb4e0, x=10, y=3,
s=0x7fdb8302fb90 "SysInfo 0.1.0a", ColorFg=4278190080,
ColorBg=2164260863,
Font=0x754040, Width=0, Height=0, Alignment=5) at osd.c:454
w = <value optimized out>
limit = <value optimized out>
cw = <value optimized out>
h = <value optimized out>
ch = <value optimized out>
#1 0x00000000004a5b3a in cOsd::DrawText (this=0x12b5f80, x=10, y=3,
s=0x7fdb8302fb90 "SysInfo 0.1.0a", ColorFg=4278190080,
ColorBg=2164260863,
Font=0x754040, Width=0, Height=0, Alignment=5) at osd.c:856
i = 1
#2 0x00007fdb8325a34e in PluginXine::cXineOsd::DrawText
(this=0x12b5f80,
x=10, y=3, s=0x7fdb8302fb90 "SysInfo 0.1.0a", ColorFg=4278190080,
---Type <return> to continue, or q <return> to quit---
ColorBg=2164260863, Font=0x754040, Width=0, Height=0, Alignment=5)
at xineOsd.c:331
osdLock = {mutex = 0x7fdb85342f40, locked = true}
#3 0x00007fdb8302cc33 in cSysInfoOsd::DrawMenu (this=0x2ad3f50)
at sysinfoosd.c:204
No locals.
#4 0x00007fdb8302cd33 in cSysInfoOsd::PleaseWait (this=0x754040)
at sysinfoosd.c:96
cTemp = "\200_+\001\000\000\000\000\222pJ\000\000\000\000\000\006\000
\000\000\000\000\000\000\200_+\001\001\000\000\000\000\000\000\000\001
\000\000\000\001\000\000\000\000\000\000\000\006\000\000\000\000\000\000
\000\200_+\001\000\000\000\000\200�N\215�\177\000\00009\225\000\000\000
\000\000\001\000\000\000\000\000\000\000\226�%\203�\177\000\000@/4\205"
#5 0x00007fdb8302ce71 in cSysInfoOsd::Show (this=0x2ad3f50) at
sysinfoosd.c:87
Area = {x1 = 0, y1 = 0, x2 = 623, y2 = 483, bpp = 2}
#6 0x00000000004dec52 in main (argc=<value optimized out>,
argv=<value optimized out>) at vdr.c:1154
state = osPlugin
Now = 1243887926
Interact = (class cOsdObject *) 0xe0caf0
key = kOk
savedTm = {c_iflag = 7595072, c_oflag = 0, c_cflag = 1040,
c_lflag = 0, c_line = 0 '\0',
c_cc = "�\217\203�\177\000\000p\231L\205�\177\000\000 \004\000\000\000
\000\000\000����\000\000\000\000�", c_ispeed = 32731, c_ospeed =
7558488}
HasStdin = false
StartedAsRoot = <value optimized out>
VdrUser = 0x0
UserDump = false
SVDRPport = 2001
AudioCommand = 0x0
ConfigDirectory = 0x7fff8d4eee6f "/etc/vdr"
EpgDataFileName = 0x504bd9 "epg.data"
DisplayHelp = 48
DisplayVersion = false
DaemonMode = false
SysLogTarget = <value optimized out>
MuteAudio = false
WatchdogTimeout = 60
Terminal = 0x1 <Address 0x1 out of bounds>
LocaleDir = 0x0
UseKbd = true
LircDevice = 0x0
RcuDevice = 0x0
PluginManager = {_vptr.cPluginManager = 0x4fac10,
static pluginManager = 0x7fff8d4ede70,
directory = 0x74e0b0 "/etc/vdr/plugins/lib", lastHousekeeping =
1243887910,
---Type <return> to continue, or q <return> to quit---
nextHousekeeping = 0, dlls = {<cList<cDll>> = {<cListBase> = {
_vptr.cListBase = 0x4fadb0, objects = 0x74e0f0, lastObject =
0x74e1e0,
count = 2}, <No data fields>}, <No data fields>}}
c = <value optimized out>
CodeSet = <value optimized out>
Menu = (class cOsdObject *) 0x754040
LastChannel = 6
LastTimerChannel = -1
PreviousChannel = {1, 6}
PreviousChannelIndex = 1
LastChannelChanged = 1243887689
LastInteract = 1243887926
MaxLatencyTime = 1
InhibitEpgScan = false
IsInfoMenu = false
CheckHasProgramme = false
CurrentSkin = <value optimized out>
long_options = {{name = 0x4f1b2d "audio", has_arg = 1, flag = 0x0,
val = 97}, {name = 0x504e9d "config", has_arg = 1, flag = 0x0, val =
99}, {
name = 0x504ea4 "daemon", has_arg = 0, flag = 0x0, val = 100}, {
name = 0x504eab "device", has_arg = 1, flag = 0x0, val = 68}, {
name = 0x504eb2 "epgfile", has_arg = 1, flag = 0x0, val = 69}, {
name = 0x504eba "grab", has_arg = 1, flag = 0x0, val = 103}, {
name = 0x504ebf "help", has_arg = 0, flag = 0x0, val = 104}, {
name = 0x504ec4 "instance", has_arg = 1, flag = 0x0, val = 105}, {
name = 0x504bd5 "lib", has_arg = 1, flag = 0x0, val = 76}, {
name = 0x504ecd "lirc", has_arg = 2, flag = 0x0, val = 364}, {
name = 0x504ed2 "localedir", has_arg = 1, flag = 0x0, val = 620}, {
name = 0x504edc "log", has_arg = 1, flag = 0x0, val = 108}, {
name = 0x501208 "mute", has_arg = 0, flag = 0x0, val = 109}, {
name = 0x504ee0 "no-kbd", has_arg = 0, flag = 0x0, val = 366}, {
name = 0x504ee7 "plugin", has_arg = 1, flag = 0x0, val = 80}, {
name = 0x504eee "port", has_arg = 1, flag = 0x0, val = 112}, {
name = 0x504ef3 "rcu", has_arg = 2, flag = 0x0, val = 370}, {
name = 0x504ef7 "record", has_arg = 1, flag = 0x0, val = 114}, {
name = 0x504efe "shutdown", has_arg = 1, flag = 0x0, val = 115}, {
name = 0x504f07 "terminal", has_arg = 1, flag = 0x0, val = 116}, {
name = 0x504f10 "user", has_arg = 1, flag = 0x0, val = 117}, {
name = 0x504f15 "userdump", has_arg = 0, flag = 0x0, val = 373}, {
name = 0x4f65cc "version", has_arg = 0, flag = 0x0, val = 86}, {
name = 0x504f1e "vfat", has_arg = 0, flag = 0x0, val = 374}, {
name = 0x504c92 "video", has_arg = 1, flag = 0x0, val = 118}, {
name = 0x504f23 "watchdog", has_arg = 1, flag = 0x0, val = 119}, {
name = 0x0, has_arg = 0, flag = 0x0, val = 0}}
lastTime = 0
ChannelSaveTimeout = 1243888290
TimerState = 0
---Type <return> to continue, or q <return> to quit---#
LastTimerCheck = 1243887920
DeviceUsed = {0 <repeats 16 times>}
to me this looks like the Font passed into DrawText is invalid. This is
set up in sysinfoosd.h thus:
static const cFont *font = cFont::GetFont(fontOsd);
Is there something obvious here that someone with more experience of the
code can spot?
Thanks,
Scott