Thu 29 Apr 2010 08:45:59 PM UTC, original submission:
System:
64 bit Linux
Current GNUstep from SVN, Current Gorm
Steps to reproduce:
- Start up Gorm
- Load a NIB file (I used the DBModel entity inspector, which I had converted from a Gorm to a NIB file).
- Make sure the inspector panel is open and click on the loaded window.
- Exit Gorm
I got a segmentation fault from these few steps.
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff622d7a5 in objc_msg_lookup () from /usr/lib64/libobjc.so.2
(gdb) bt
#0 0x00007ffff622d7a5 in objc_msg_lookup () from /usr/lib64/libobjc.so.2
#1 0x00007ffff6fe5d73 in -[NSWindow resignKeyWindow] (self=0x1369ba0, _cmd=<value optimized out>)
at NSWindow.m:1787
#2 0x00007ffff6e8c233 in -[NSApplication deactivate] (self=0x840f00, _cmd=<value optimized out>)
at NSApplication.m:1336
#3 0x00007ffff31d039c in -[XGServer(EventOps) processEvent:] (self=0x861d30, _cmd=<value optimized out>,
event=<value optimized out>) at XGServerEvent.m:1143
#4 0x00007ffff31cc58b in -[XGServer(EventOps) receivedEvent:type:extra:forMode:] (self=0x861d30,
_cmd=<value optimized out>, data=<value optimized out>, type=<value optimized out>,
extra=<value optimized out>, mode=<value optimized out>) at XGServerEvent.m:309
#5 0x00007ffff69527d3 in -[GSRunLoopCtxt pollUntil:within:] (self=0x8a9a40, _cmd=<value optimized out>,
milliseconds=<value optimized out>, contexts=0x89cfb0) at GSRunLoopCtxt.m:488
It turned out that the first responder of that window had a "deadface" isa pointer. Running the same application once more with a breakpoint on [NSWindow makeFirstResponder:] showed that the object in question was a GormWindowEditor.
po aResponder
h=--- v=--- <GormWindowEditor: 0x1372170> f={x = 0; y = 0; width = 0; height = 0} b={x = 0; y = 0; width = 0; height = 0}
I expect that this problem is triggered by the changed handling of retains for Gorm/NIB loading in gui. It is well possible that an existing bug got triggered by that change or that this change itself still has issues.
|