[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: applications segfaulting in gnustep-back on OpenBSD sparc64
From: |
Eric Wasylishen |
Subject: |
Re: applications segfaulting in gnustep-back on OpenBSD sparc64 |
Date: |
Fri, 4 Nov 2011 12:07:57 -0600 |
That code forgets to check that XRenderFindVisualFormat returns non-NULL. I
committed a fix.
Eric
On 2011-11-04, at 2:12 AM, Sebastian Reitenbach wrote:
>
> On Thursday, November 3, 2011 18:20 CET, "Sebastian Reitenbach"
> <sebastia@l00-bugdead-prods.de> wrote:
>
>> Hi,
>>
>> with my adventures on getting gnustep to work on the sparc64 OpenBSD
>> platform, and even with the warnings I still get with -base, I thought I
>> compile a couple of apps, and try how it works. However, all segfault in the
>> same spot in gnustep-back, below an example of Affiche. I use gnustep from
>> svn, together with libobjc2, using cairo backend.
>
> I'm logged in via ssh -X in case it matters.
>
> Sebastian
>
>
>>
>> (gdb) r
>> Starting program: /usr/local/bin/Affiche
>> 2011-11-03 18:06:17.840 Affiche[26421] Did not find correct version of
>> backend (libgnustep-back-020.bundle), falling back to std
>> (libgnustep-back.bundle).
>>
>> Program received signal SIGSEGV, Segmentation fault.
>> 0x0000000212716348 in bestContext (dpy=0x2051f6db0, screen_number=0,
>> context=0x20a35ff00) at context.c:841
>> 841 if ((pictFormat->type == PictTypeDirect)
>> (gdb) thread apply all bt
>> (gdb) bt
>> #0 0x0000000212716348 in bestContext (dpy=0x2051f6db0, screen_number=0,
>> context=0x20a35ff00) at context.c:841
>> #1 0x0000000212715ea0 in RCreateContext (dpy=0x2051f6db0, screen_number=0,
>> attribs=0x0) at context.c:701
>> #2 0x00000002127226a0 in -[XGScreenContext initForDisplay:screen:]
>> (self=0x207fd6c28, _cmd=0x2129859b0, dpy=0x2051f6db0,
>> screen_number=0) at XGServer.m:180
>> #3 0x00000002127244dc in -[XGServer _screenContextForScreen:]
>> (self=0x20fa6fc08, _cmd=0x2129859c0, screen_number=0)
>> at XGServer.m:519
>> #4 0x00000002127245dc in -[XGServer xrContextForScreen:] (self=0x20fa6fc08,
>> _cmd=0x212988b68, screen_number=0) at XGServer.m:534
>> #5 0x0000000212739ed8 in -[XGServer(WindowOps) window::::]
>> (self=0x20fa6fc08, _cmd=0x2027e0b10, frame=
>> {origin = {x = 0, y = 0}, size = {width = 0, height = 0}},
>> type=NSBackingStoreRetained, style=64, screen=0)
>> at XGServerWindow.m:1965
>> #6 0x00000002023852b8 in -[NSWindow _initBackendWindow] (self=0x205240e08,
>> _cmd=0x2027e0c70) at NSWindow.m:916
>> #7 0x0000000202386678 in -[NSWindow
>> initWithContentRect:styleMask:backing:defer:] (self=0x205240e08,
>> _cmd=0x2027e0970,
>> contentRect={origin = {x = 0, y = 0}, size = {width = 0, height = 0}},
>> aStyle=64, bufferingType=NSBackingStoreRetained,
>> flag=0 '\0') at NSWindow.m:1063
>> #8 0x00000002023869e0 in -[NSWindow
>> initWithContentRect:styleMask:backing:defer:screen:] (self=0x205240e08,
>> _cmd=0x2026eae88,
>> contentRect={origin = {x = 0, y = 0}, size = {width = 0, height = 0}},
>> aStyle=64, bufferingType=NSBackingStoreRetained,
>> flag=0 '\0', aScreen=0x0) at NSWindow.m:1113
>> #9 0x0000000202055e68 in -[NSApplication(Private) _appIconInit]
>> (self=0x205161708, _cmd=0x2026ea288) at NSApplication.m:3789
>> #10 0x0000000202044b6c in -[NSApplication _init] (self=0x205161708,
>> _cmd=0x2026ea2a8) at NSApplication.m:921
>> #11 0x0000000210308d1c in -[NSObject performSelector:withObject:]
>> (self=0x205161708, _cmd=0x21087fa28, aSelector=0x2026ea2a8,
>> anObject=0x205161708) at NSObject.m:2011
>> #12 0x00000002103d1ff0 in -[NSObject(NSThreadPerformAdditions)
>> performSelector:onThread:withObject:waitUntilDone:modes:] (
>> self=0x205161708, _cmd=0x21087fb68, aSelector=0x2026ea2a8,
>> aThread=0x205160408, anObject=0x205161708, aFlag=1 '\001',
>> anArray=0x211492748) at NSThread.m:1239
>> #13 0x00000002103d1e00 in -[NSObject(NSThreadPerformAdditions)
>> performSelectorOnMainThread:withObject:waitUntilDone:modes:] (
>> self=0x205161708, _cmd=0x21087fb78, aSelector=0x2026ea2a8,
>> anObject=0x205161708, aFlag=1 '\001', anArray=0x211492748)
>> at NSThread.m:1194
>> #14 0x00000002103d1ea4 in -[NSObject(NSThreadPerformAdditions)
>> performSelectorOnMainThread:withObject:waitUntilDone:] (
>> self=0x205161708, _cmd=0x2026ea2b8, aSelector=0x2026ea2a8,
>> anObject=0x205161708, aFlag=1 '\001') at NSThread.m:1205
>> #15 0x0000000202044dd4 in -[NSApplication init] (self=0x205161708,
>> _cmd=0x2026e9d88) at NSApplication.m:975
>> #16 0x0000000202044360 in +[NSApplication sharedApplication]
>> (self=0x2026e90b0, _cmd=0x326c30) at NSApplication.m:847
>> #17 0x000000000010b178 in gnustep_base_user_main (argc=1,
>> argv=0xfffffffffffd72e8, env=0xfffffffffffd72f8) at Affiche.m:678
>> #18 0x0000000210353310 in main (argc=1, argv=0xfffffffffffd72e8,
>> env=0xfffffffffffd72f8) at NSProcessInfo.m:978
>> #19 0x0000000000101eac in _start ()
>> #20 0x0000000000101eac in _start ()
>> Previous frame identical to this frame (corrupt stack?)
>> (gdb) frame 0
>> #0 0x0000000212716348 in bestContext (dpy=0x2051f6db0, screen_number=0,
>> context=0x20a35ff00) at context.c:841
>> 841 if ((pictFormat->type == PictTypeDirect)
>> (gdb) list
>> 836 {
>> 837 for (i=numvis-1, best = -1; i>=0; i--)
>> 838 {
>> 839 XRenderPictFormat* pictFormat =
>> 840 XRenderFindVisualFormat (dpy, vinfo[i].visual);
>> 841 if ((pictFormat->type == PictTypeDirect)
>> 842 && (pictFormat->direct.alphaMask))
>> 843 {
>> 844 best = i;
>> 845 }
>> (gdb) print dpy
>> $1 = (Display *) 0x2051f6db0
>> (gdb) print vinfo
>> $2 = (XVisualInfo *) 0x20c462000
>> (gdb) print i
>> $3 = 0
>> (gdb) print numvis
>> $4 = 1
>> (gdb) print vinfo[i].visual
>> $5 = (Visual *) 0x200bd27c0
>> (gdb) print *vinfo[i].visual
>> $6 = {ext_data = 0x0, visualid = 82, class = 4, red_mask = 16711680,
>> green_mask = 65280, blue_mask = 255, bits_per_rgb = 8,
>> map_entries = 256}
>> (gdb) print *dpy
>> $7 = <incomplete type>
>> (gdb)
>>
>> _______________________________________________
>> Discuss-gnustep mailing list
>> Discuss-gnustep@gnu.org
>> https://lists.gnu.org/mailman/listinfo/discuss-gnustep
>
>
>
>
>
> _______________________________________________
> Discuss-gnustep mailing list
> Discuss-gnustep@gnu.org
> https://lists.gnu.org/mailman/listinfo/discuss-gnustep