[Cairo] Odd crash in cairo-demo/xrspline

Eric Christopherson rakko at charter.net
Mon Jul 28 17:12:05 PDT 2003


I seem to suffer a consistently reproducible crash when running the demo
program xrspline. Upon running it, the X server itself crashes hard; it
doesn't do any cleanup such as setting the keyboard or video back to their
old states.

I can't tell what's causing it. It behaves the same way whether or not
RENDER hardware acceleration is turned on. I have logged the X server (with
-verbose 9) and an strace of xrspline, and attached the logs to this
message; besides that, I ran gdb on xrspline, using a user-defined function
to continuously perform the 'step' instruction. Since the log of that is
very long (130K bzip2-compressed), I have included just the last part of it
in this message:

[...]
win_print_help (win=0xbffff3d0) at xrspline.c:548
548         for (i=0; i < ARRAY_SIZE(key_binding); i++)
549             if (! key_binding[i].is_alias)
550                 printf("%s:\t%s\n",
get_callback_doc (callback=0x804a383) at xrspline.c:526
526         for (i=0; i < ARRAY_SIZE(callback_doc); i++)
527             if (callback_doc[i].callback == callback)
526         for (i=0; i < ARRAY_SIZE(callback_doc); i++)
527             if (callback_doc[i].callback == callback)
526         for (i=0; i < ARRAY_SIZE(callback_doc); i++)
527             if (callback_doc[i].callback == callback)
526         for (i=0; i < ARRAY_SIZE(callback_doc); i++)
527             if (callback_doc[i].callback == callback)
526         for (i=0; i < ARRAY_SIZE(callback_doc); i++)
527             if (callback_doc[i].callback == callback)
526         for (i=0; i < ARRAY_SIZE(callback_doc); i++)
527             if (callback_doc[i].callback == callback)
526         for (i=0; i < ARRAY_SIZE(callback_doc); i++)
527             if (callback_doc[i].callback == callback)
526         for (i=0; i < ARRAY_SIZE(callback_doc); i++)
527             if (callback_doc[i].callback == callback)
526         for (i=0; i < ARRAY_SIZE(callback_doc); i++)
527             if (callback_doc[i].callback == callback)
526         for (i=0; i < ARRAY_SIZE(callback_doc); i++)
527             if (callback_doc[i].callback == callback)
526         for (i=0; i < ARRAY_SIZE(callback_doc); i++)
527             if (callback_doc[i].callback == callback)
526         for (i=0; i < ARRAY_SIZE(callback_doc); i++)
527             if (callback_doc[i].callback == callback)
526         for (i=0; i < ARRAY_SIZE(callback_doc); i++)
527             if (callback_doc[i].callback == callback)
526         for (i=0; i < ARRAY_SIZE(callback_doc); i++)
527             if (callback_doc[i].callback == callback)
526         for (i=0; i < ARRAY_SIZE(callback_doc); i++)
527             if (callback_doc[i].callback == callback)
526         for (i=0; i < ARRAY_SIZE(callback_doc); i++)
527             if (callback_doc[i].callback == callback)
526         for (i=0; i < ARRAY_SIZE(callback_doc); i++)
527             if (callback_doc[i].callback == callback)
526         for (i=0; i < ARRAY_SIZE(callback_doc); i++)
527             if (callback_doc[i].callback == callback)
526         for (i=0; i < ARRAY_SIZE(callback_doc); i++)
527             if (callback_doc[i].callback == callback)
526         for (i=0; i < ARRAY_SIZE(callback_doc); i++)
527             if (callback_doc[i].callback == callback)
526         for (i=0; i < ARRAY_SIZE(callback_doc); i++)
527             if (callback_doc[i].callback == callback)
528                 return callback_doc[i].doc;
531     }
win_print_help (win=0xbffff3d0) at xrspline.c:548
548         for (i=0; i < ARRAY_SIZE(key_binding); i++)
553     }
main (argc=1, argv=0xbffff4f4) at xrspline.c:316
316         win_handle_events(&win);
win_handle_events (win=0xbffff3d0) at xrspline.c:644
644         XEvent xev;
648             if (!XPending(win->dpy) && win->needs_refresh) {

Program received signal SIGPIPE, Broken pipe.
0x410cba04 in write () from /lib/libc.so.6
Single stepping until exit from function write,
which has no line number information.

Program terminated with signal SIGPIPE, Broken pipe.
The program no longer exists.
The program is not being run.


Does anyone know what could be wrong here? If any more info is necessary to
diagnose the situation, please ask (I'm inexperienced at debugging these
things myself).

-- 
Furrfu!		r a k k o  at  c h a r t e r  dot  n e t




More information about the cairo mailing list