discuss-gnustep
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]