[Xcircuit-dev] Xcircuit segfaults on startup under Mac OS X.
Kevin Brock
software at kevin.com
Wed Jul 21 11:59:26 PDT 2010
> On Jul 21, 2010, at 11:53 AM, Tim Edwards wrote:
>> Chris wrote:
> . . .
>> > Xcircuit segfaults on startup on my system. I've attached a report which
>> > includes a trace and much more info.
>> > The software begins to draw a window but it crashes so fast I can't see how
>> > far it gets. I see some gold color and
>> > maybe the widgets and it's all gone in a half second.
>> >
>> > I can help if you need more info. At one tie I used to know tcl.tk fairly
>> > well. I write code on Solaris and Linux
>> > all day long but know less about Mac OS and so far nothing about xcircuit.
>>
>> > Date/Time: 2010-07-13 21:54:23.807 -0700
>> > OS Version: Mac OS X 10.6.4 (10F569)
>> > Report Version: 6
>> >
>> > Thread 0 Crashed: Dispatch queue: com.apple.main-thread
>> > 0 libX11.6.dylib 0x000000010c794e03 CmapRecForColormap +
>> > 110
>> > 1 libX11.6.dylib 0x000000010c7952cd XcmsCCCOfColormap +
>> > 42
>> > 2 libX11.6.dylib 0x000000010c735a5f XAllocNamedColor + 55
>> > 3 xcircuit.so 0x000000010c681a55 CvtStringToPixel +
>> > 130
>> > 4 xcircuit.so 0x000000010c681b2e xc_alloccolor + 61
>> > 5 xcircuit.so 0x000000010c67e0dc build_app_database +
>> > 68
>> > 6 xcircuit.so 0x000000010c67f054 GUI_init + 2056
>>
>> Extracting the relevant parts of your crash report, it looks like it
>> crashed under Mac OS due to an invalid colormap. In GUI_init(), the
>> colormap is set before calling build_app_database(), so that should not
>> be the problem. The colormap is set by the line
>>
>> cmap = Tk_Colormap(tkwind);
>>
>> so my suspicion is that under Mac OS, unlike other systems, Tk does not
>> report a valid colormap initially, although it is supposed to do so. I'm
>> not really sure what to do about it, since it appears to be an error in
>> the Tk implementation for the Mac (Tk_MapWindow() doesn't actually wait
>> for the window to be mapped?). However, you could try changing line
>> 9275 of tclxcircuit.c from
>>
>> cmap = Tk_Colormap(tkwind);
>> to
>> cmap = DefaultColormap(dpy, DefaultScreen(dpy));
>
> I'm seeing the same problem as Chris. I tried your suggestion, and it crashes immediately on the call to DefaultColormap.
>
> Tk_Colormap is returning NULL.
>
> I'm looking for some examples to see if this is a problem in other Tk based apps on OS X, but I'm not a Tk expert...
>
> Kevin Brock
>
>
>> which may work to bypass the Tk structures and ask for the colormap
>> directly from X11. Let me know if it makes a difference.
>
More information about the Xcircuit-dev
mailing list