On 16.02.2013 15:21, Sebastian Reitenbach wrote:
Hi,having ddbd from GWorkspace running, then, when starting mdextractor, the latter tries to connect to ddbd, but will die because of: /usr/local/bin/mdextractor: Uncaught exception NSInvalidReceivePortException, reason: invalidated while awaiting reply reason for this exception is, ddbd is dying. With gdb connected to a running ddbd, I get this backtrace when it segfaults: Program received signal SIGSEGV, Segmentation fault. 0x0ef02527 in objc_msgSend () from /usr/local/lib/libobjc2.so.1.0 (gdb) bt #0 0x0ef02527 in objc_msgSend () from /usr/local/lib/libobjc2.so.1.0 #1 0x0307aaf3 in -[GSFFIInvocation invokeWithTarget:] (self=0x8bcec384, _cmd=0x22db3a98 <.objc_selector_list+168>, anObject=0x87a82cc4) at GSFFIInvocation.m:483 #2 0x02effe02 in -[NSInvocation invoke] (self=0x8bcec384, _cmd=0x22da4700 <.objc_selector_list+1120>) at NSInvocation.m:658 #3 0x02e8287d in -[NSConnection(Private) _service_forwardForProxy:] (self=0x82439fd4, _cmd=0x22da43c8 <.objc_selector_list+296>, aRmc=0x8bcec704) at NSConnection.m:2706 #4 0x02e800d6 in -[NSConnection(Private) handlePortMessage:] (self=0x8206da04, _cmd=0x22dea1b0 <.objc_selector_list+384>, msg=0x87a82704) at NSConnection.m:2343 #5 0x03064c25 in -[NSMessagePort handlePortMessage:] (self=0x83ccafa4, _cmd=0x22dea1b0 <.objc_selector_list+384>, m=0x87a82704) at NSMessagePort.m:1586 #6 0x030601f4 in -[GSMessageHandle receivedEvent:type:extra:forMode:] (self=0x8878f604, _cmd=0x22dea268 <.objc_selector_list+568>, data=0x83ccafa4, type=ET_RPORT, extra=0x3, mode=0x22dcc3b0 <.objc_str>) at NSMessagePort.m:869 #7 0x0306587f in -[NSMessagePort receivedEvent:type:extra:forMode:] (self=0x83ccafa4, _cmd=0x22e07c50 <.objc_selector_list+96>, data=0x83ccafa4, type=ET_RPORT, extra=0x3, mode=0x22dcc3b0 <.objc_str>) at NSMessagePort.m:1715 #8 0x030d6d77 in -[GSRunLoopCtxt pollUntil:within:] (self=0x82085704, _cmd=0x22dcc600 <.objc_selector_list>, milliseconds=29928, contexts=0x8207bd44) at GSRunLoopCtxt.m:639 #9 0x02fa6605 in -[NSRunLoop acceptInputForMode:beforeDate:] (self=0x8207bec4, _cmd=0x22dcc668 <.objc_selector_list+104>, mode=0x22dcc3b0 <.objc_str>, limit_date=0x87189db4) at NSRunLoop.m:1206 #10 0x02fa6bb4 in -[NSRunLoop runMode:beforeDate:] (self=0x8207bec4, _cmd=0x22dcc678 <.objc_selector_list+120>, mode=0x22dcc3b0 <.objc_str>, date=0x8206d104) at NSRunLoop.m:1274 #11 0x02fa6e5d in -[NSRunLoop runUntilDate:] (self=0x8207bec4, _cmd=0x22dcc748 <.objc_selector_list+328>, date=0x8206d104) at NSRunLoop.m:1305 #12 0x02fa6c37 in -[NSRunLoop run] (self=0x8207bec4, _cmd=0x3c006dc0 <.objc_selector_list+464>) at NSRunLoop.m:1288 #13 0x1c008978 in gnustep_base_user_main (argc=2, argv=0xcfbf61d4) at ddbd.m:553 #14 0x02f85957 in main (argc=2, argv=0xcfbf61d4, env=0xcfbf61e0) at NSProcessInfo.m:984 #15 0x1c005599 in ___start () #16 0x1c00550a in _start () (gdb) frame 4 #4 0x02e800d6 in -[NSConnection(Private) handlePortMessage:] (self=0x8206da04, _cmd=0x22dea1b0 <.objc_selector_list+384>, msg=0x87a82704) at NSConnection.m:2343 2343 [conn _service_forwardForProxy: rmc]; // Catches exceptions (gdb) print 1 $1 = 1 (gdb) frame 1 #1 0x0307aaf3 in -[GSFFIInvocation invokeWithTarget:] (self=0x8bcec384, _cmd=0x22db3a98 <.objc_selector_list+168>, anObject=0x87a82cc4) at GSFFIInvocation.m:483 483 RETAIN_RETURN_VALUE; (gdb) list 478 if (*type != _C_VOID) 479 { 480 cifframe_decode_arg(type, _retval); 481 } 482 483 RETAIN_RETURN_VALUE; 484 _validReturn = YES; 485 } 486 487 @end (gdb) frame 0 #0 0x0ef02527 in objc_msgSend () from /usr/local/lib/libobjc2.so.1.0 (gdb) list 488 489 /* 490 * Return YES if the selector contains protocol qualifiers. 491 */ 492 static BOOL 493 gs_protocol_selector(const char *types) 494 { 495 if (types == 0) 496 { 497 return NO; (gdb) print types Program received signal SIGSEGV, Segmentation fault. since its dying deep within gnustep-base, I'm a bit unsure whether this is a problem of the tools from GWorkspace, or a more general problem in -base. I'm on i386, OpenBSD 5.3-beta, with -base,make,gui,back,gworkspace from SVN.
The first thing you should try to do is print out the invocation. (That is in frame 1 do a "po self") If that works please report back the output. This should give a hint at which method gets invoked with a wrong signature. Most likely this has to do with all the 64bit changes going on at the moment.
Fred _______________________________________________ Discuss-gnustep mailing list [email protected] https://lists.gnu.org/mailman/listinfo/discuss-gnustep
