Sascha Volkenandt wrote:
Am Freitag, 4. März 2005 20:16 schrieb Wolfgang Fritz:
Hi,
I am running vdr-1.3.22 with graphlcd 0.1.2-pre4 and sometimes get a segmentation fault in the graphlcd code when stopping a replay with the "exit" key. This happens mostly when I stop replaying a VDR recording, but I've seen this too when I terminate MP3 playback in the MP3 plugin.
The following backtrace is from a crash after stopping a VDR reording:
#0 cChannel::GetChannelID() const (this=0x0) at channels.h:66 66 tChannelID(int Source, int Nid, int Tid, int Sid, int Rid = 0) { source = Source; nid = Nid; tid = Tid; sid = Sid; rid = Rid; } (gdb) bt #0 cChannel::GetChannelID() const (this=0x0) at channels.h:66 #1 0x403790bf in cGraphLCDState::SetChannel(int) (this=0x8960900, ChannelNumber=0) at state.c:552
I don't run the plugin, but maybe that helps you:
In state.c:552 (#1) there is an access to a channel object that is NULL (that's why this is 0x0 in #0). Probably there is only someting like if (channel != NULL) {...} missing.
This is not the primary problem. It is caused by a call to Channels.GetByNumber() with a channel number of 0 in cGraphLCDState::SetChannel() in #1. Up to now I couldn't find the cause for this. As a preliminary workaround I inserted a check for ChannelNumber == 0.
Wolfgang
Greetings, Sascha
vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr