On Sun, Jan 07, 2007 at 07:19:57PM +0100, Denis Oliver Kropp wrote:
> Ville Syrjälä wrote:
> > Not sure. A core dump might at least give me a better idea where to
> > start looking...
>
> I think I could run it remotely in a gdb.
The core dump problem was me logging out and ulimit -c resetting itself
to 0 :)
I tried to look at this a bit but the real bug still eludes me.
This ugly hack eliminates the crash, but causes a double free on exit.
--- o/xorg-server-1.1.1/xkb/xkb.c 2006-07-05 21:38:48.000000000 +0300
+++ xorg-server-1.1.1/xkb/xkb.c 2007-01-07 21:18:55.000000000 +0200
@@ -2910,6 +2910,9 @@
if (!sli)
return BadAlloc;
+ if (!sli->maps)//
+ sli->maps = xkbi->desc->indicators->maps;//
+
from = (xkbIndicatorMapWireDesc *)&stuff[1];
for (i=0,bit=1;i<XkbNumIndicators;i++,bit<<=1) {
if (stuff->which&bit) {
Something manages to clear the maps pointer. It is allocated just fine
and it is fine during some other xkb calls. I didn't figure out what
clears the pointer. I added printfs to all obvious places but that
didn't reveal anything. Xorg server built from the exact same source
tree works fine. gdb + watchpoint could help here.
I also found another bug. The code uses XKB_BASE_DIRECTORY but configure
doesn't turn that into an absolute path. That caused some xkb warnings
during server startup. I fixed that by passing --with-xkb-path=... to
configure.
--
Ville Syrjälä
[EMAIL PROTECTED]
http://www.sci.fi/~syrjala/
_______________________________________________
directfb-dev mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev