Re: Every app gives a SIGSEGV...I think I'm calling it quits.




On Tue, 15 Dec 1998, Dan Newcombe wrote:
> I think when you start having troubles in the actual X libraries, it is
> time to call it quits.

Please don't call it quits, you're one of the few people doing HP-UX
bugreports.


> (gdb) run --disable-sound
> The program being debugged has been started already.
> Start it from the beginning? (y or n) y
> Starting program: /opt/gnome/bin/gnome-session --disable-sound
> SESSION_MANAGER=local/mordor:/usr/spool/sockets/ICE/17218,tcp/mordor:3746
> 
> Program received signal SIGSEGV, Segmentation fault.
> 0x7adcf19c in XSetIMValues ()
> (gdb) bt
> #0  0x7adcf19c in XSetIMValues ()
> #1  0x7ad18770 in gdk_im_instantiate_cb (display=0x0, 
>     client_data=0x4001ea20 "z${\003", call_data=0x0) at gdkim.c:287

The code that is closest to the problem is in gtk+/gdk/gdkim.c, in
this function:

   static void
   gdk_im_instantiate_cb (Display *display,
                          XPointer client_data, XPointer call_data)
   {
     XIMCallback destroy_cb;
     GList *node;

     GDK_NOTE (XIM, g_message ("New IM is instantiated."));
     if (display != gdk_display)
       return;

     XUnregisterIMInstantiateCallback (gdk_display, NULL, NULL, NULL,
                                       gdk_im_instantiate_cb, NULL);

     xim_im = XOpenIM (GDK_DISPLAY(), NULL, NULL, NULL);
     if (xim_im == NULL)
       GDK_NOTE (XIM, g_warning ("Unable to open open IM."));

     destroy_cb.callback = gdk_im_destroy_cb;
     destroy_cb.client_data = NULL;
     XSetIMValues (xim_im, XNDestroyCallback, &destroy_cb, NULL);

     XGetIMValues (xim_im, XNQueryInputStyle, &xim_styles, NULL, NULL);

     for (node = xim_ic_list; node != NULL; node = g_list_next(node))
       {
         GdkICPrivate *private = (GdkICPrivate *) (node->data);
         if (private->xic == NULL)
           gdk_ic_real_new ((GdkIC *)private);
       }
   }

My man page for XSetIMValues says the following:

   char * XSetIMValues(im, ...)
         XIM im;

   The XSetIMValues function presents a variable argument list
   programming interface for setting attributes of the specified input
   method.  It returns NULL if it succeeds; otherwise, it returns the
   name of the first argument that could not be set.  Xlib does not
   attempt to set arguments from the supplied list that follow the
   failed argument; all arguments in the list preceding the failed
   argument have been set correctly. 

If the API or operation is different in HP-UX's xlib, then a configure
check might be in order.  If it just a general purpose failure, a more
graceful error might be in order.  To be honest, I'm not 100% sure what
this function does (beyond the general "it sets up callbacks"), I just
hope I've pointed someone closer to the right direction.

Best of Luck,
-Gleef




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