finding source of segfault

Drew Parsons dparsons at debian.org
Tue Jun 27 21:44:30 PDT 2006


On Mon, 2006-06-19 at 11:09 +1000, Drew Parsons wrote:
> On Wed, 2006-06-14 at 11:02 -0400, Adam Jackson wrote:
> > On Wednesday 14 June 2006 01:34, Drew Parsons wrote:
> > 
> > > I'm writing now on the off-chance that someone might recognise the
> > > signature of the segfault and be able to pinpoint  which lib needs to be
> > > upgraded to X11R7.1 (or beyond).  The backtrace looks like:
> > >
> > > #0  0x00000000 in ?? ()
> > > #1  0x080bc2ee in compCreateWindow (pWin=0x875e6e8) at compwindow.c:600
> > 
> > This sort of signature typically means you attempted to call through a 
> > function pointer that was set to NULL.  compCreateWindow calls through three 
> > of the screen's function pointer chains: CreateWindow, GetWindowPixmap, and 
> > SetWindowPixmap.
> > 
...
> > Right now those chains are only ever called from the Damage and Composite 
> > extensions, so the minimal hack might be to just always disable those in 
> > Xprt; I had thought this was done already though.  The better solution might 
> > be to add stub implementations to the postscript backend and see what breaks.  
> > Since the ps backend clearly believes it can implement the world without 
> > using fb, it might be fine to just have those calls no-op.
> > 

> Anyway, looking at it, it seems to me the simplest solution is just to
> check GetWindowPixmap and SetWindowPixmap are not null in compwindow.c.
> There is precedent for this approach in miext/damage/damage.c, l.85.
> Doing this also adds a modicum of flexibility to composite, in case some
> other backend driver later on decides in a similar way to be more vector
> based and not need WindowPixmap.
> 
> My patch would be to replace l.600 in composite/compwindow.c 
> 
> to
> 
> if ( pScreen->SetWindowPixmap && pScreen->GetWindowPixmap )
> 	(*pScreen->SetWindowPixmap) (pWin, (*pScreen->GetWindowPixmap)
> (pWin->parent));
> 

I've logged this issue with the patch on bugzilla #7346,
https://bugs.freedesktop.org/show_bug.cgi?id=7346

Thanks,

Drew



More information about the xorg mailing list