Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[vdr] Re: UPT-Error related with vdr-1.1.27-1.1.28-c.diff



Martin Holst wrote:
> Sascha Volkenandt wrote:
> > At Sonntag, 21. September 2003 15:15 Martin Holst wrote:
> > > Now I've undo the changes of the c-diff in vdr 1.1.28 and vd compiles
> > > without an error. But when I start vdr, I get the same segmentation
> > > fault. When I run "gdb --core=core" I get the following message:
> > 
> > Does it change anything if your start gdb using
> > gdb ./vdr core
> > ?
> 
> Meanwhile I've installed Suse 8.1 and now I get some more information
> (which I don't understand exactly):
> I call gdb ./vdr, at the prompt I enter "run". After some output I get
> the following lines:
> 
> ------------------------ snip ----------------------------
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 2051 (LWP 1495)]
> 0x0807dfb8 in cCaDescriptors::Get(int, int, int, int) (this=0x0. Source=0,
>         Transponder=0, ServiceId=0, CaSystem=0) at tools.h:175
> 175      T *First(void) const { return (T *)objects; }
> Current language:  auto; currently c++
> (gdb)
> ------------------------ snip ----------------------------
> 
> If i enter "bt" I get:
> 
> ------------------------ snip ----------------------------
> #0 0x0807dfb8 in cCaDescriptors::Get(int, int, int, int) (this=0x0.
> Source=0,
>         Transponder=0, ServiceId=0, CaSystem=0) at tools.h:175
> #1 0x0807f268 in cSIProcessor::GetCaDescriptors(int, int, int, int,
> unsigned
>         char*) (Source=35008, Transponder=12188, ServiceId=12003, 
>         BufSize=2048, Data=0xbf5ff27c "") at eit.c:1536
> #2 ... #5 (shouldn't be important)
> ------------------------ snip ----------------------------
> 
> So: why is the get-method called with an null pinter and 0 as parameter?
> How can I find out, who called this method? 
> 

I found out, that up is my friend her. ;-) Now I've debugged a little bit
and I recognized, that the segmentation fault comes from
for (cCaDescriptor *ca=First(); ca; Next(ca)) in cCaDescriptors::Get(...)
where the problem is the condition. Every command is ok, but
when I do a
cCaDescriptor *ca = NULL; printf("Line1\n");
ca=First(); printf("Line2\n");
if (ca) printf("condition is true\n");
   else printf("condition is false\n");
printf("Line3\n");

I will see Line1 and Line2 but not Line3 or anything out of the if. What
could be the problem? 

Martin

-- 
NEU FÜR ALLE - GMX MediaCenter - für Fotos, Musik, Dateien...
Fotoalbum, File Sharing, MMS, Multimedia-Gruß, GMX FotoService

Jetzt kostenlos anmelden unter http://www.gmx.net

+++ GMX - die erste Adresse für Mail, Message, More! +++



-- 
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe vdr" as subject.



Home | Main Index | Thread Index