xftree on xterminal

Heiko Berges hb-mlist+xfce at k6.bsls.de
Wed Aug 21 16:17:01 CEST 2002


Hi,


On Tue, Aug 20, 2002 at 05:30:28PM -0500, edscott wilson garcia wrote:
> On Tue, 2002-08-20 at 09:43, Heiko Berges wrote:
> > 
> > Maybe this helps to locate the problem:
> > 
> > Breakpoint 1, 0x805b9b8 in ErrorHandler ()
> > GDB> bt
> > #0  0x805b9b8 in ErrorHandler ()
> > #1  0x401f14e9 in _XError ()
> > #2  0x401efcb6 in _XReply ()
> > #3  0x401eb4d1 in XSync ()
> > #4  0x4016dcfa in gdk_image_new ()
> > #5  0x4016db20 in gdk_image_new ()
> > #6  0x4016f969 in _gdk_pixmap_create_from_xpm ()
> > #7  0x4016fe59 in gdk_pixmap_colormap_create_from_xpm_d ()
> > #8  0x807acea in MyCreateGdkPixmapFromData ()
> > #9  0x80737ae in scale_pixmap ()
> > #10 0x8073897 in create_pixmaps ()
> > #11 0x805f06e in new_top ()
> > #12 0x806093b in gui_main ()
> > #13 0x8058cdf in main ()
> 
> >From this it seems that your X display has insufficient resources to
> create the icon pixmaps at a scaled size. X Pixmaps reside on the
> server. The contradiction here is that you should get a "unable to
> create pixmap" from gdk_image_new() ---which is what asks for the
> resources from your X display. Instead your X server gives gdk the
> pixmap, but when gdk and X events are syncronized, your X display
> realizes that it should not have created the pixmap for whatever reason,
> and denies access to the pixmap. Ergo, crash.


I single-stepped through gdk_image_new() today, and it looks like
this is the usual way for gdk to determinate if it can use X shared
memory:

(from gdk/gdkimage.c)

              gdk_error_trap_push ();

              XShmAttach (private->xdisplay, x_shm_info);
              XSync (private->xdisplay, False);

              if (gdk_error_trap_pop ())
                {
                  /* this is the common failure case so omit warning */
                  XDestroyImage (private->ximage);
                  shmdt (x_shm_info->shmaddr);
                  shmctl (x_shm_info->shmid, IPC_RMID, 0);

                  g_free (private->x_shm_info);
                  g_free (image);

                  gdk_use_xshm = False;

                  return NULL;
                }


I have no idea, why the error trap doesn't catch the error, but
instead your errorhandler terminates xftree.

I tried to start xftree with --no-xshm option, and it comes up without
serious problems.


> There are several different S3 drivers for xfree 3.x, like S3-virge. If
> you do not have the right one for your card (open the computer and take
> a look at what the chip says) then your Xdisplay will have unpredictable
> behaviour if it works at all.

The XF86 serverlist (3.3.6) names only one, XF86_s3, and lists the 86c864
as supported chip, so I used this. 



	Heiko



More information about the Xfce mailing list