This sounds like a problem in the forwarding. Here it tries to invoke the fast proxying function:
> #92241 0x00007ffff6a810d2 in objc_msg_lookup_internal > (receiver=0x7fffffff8550, selector=0xa68660, sender=0x2b4d9b8) at > sendmsg2.c:96 This then calls the GNUstep proxying hook: > #92240 0x00007ffff77347be in gs_objc_proxy_lookup (receiver=0x2b4d9b8, > op=0xa68660) at GSFFIInvocation.m:276 This then calls back into the runtime to invoke the -forwardingTargetForSelector: method. > #92239 0x00007ffff6a80ea8 in objc_msg_lookup_sender (receiver=0x7fffffff7fa0, > selector=0x7ffff7b86f30, sender=0x0) at sendmsg2.c:171 This then fails to find the -forwardingTargetForSelector: method in the receiver's class and so repeats the process. The odd thing is that the call in gs_objc_proxy_lookup() is bracketed in a call to class_respondsToSelector(), which should only return YES if the class responds to the selector directly, without invoking any forwarding mechanisms. The code in objc_msg_lookup_internal() should always find a method if class_respondsToSelector() does, unless there is some memory corruption going on... David On 3 Nov 2012, at 10:54, Tom Davie wrote: > Hey all, > > Having managed to get libobjc2 trunk installed, I'm now unfortunately hitting > an infinite recursion in the runtime: > > gdb sayeth: > > #92231 … repeats ad-infinatum, decrementing the receiver pointer by 0x110 > every iteration. > #92232 0x00007ffff6a810d2 in objc_msg_lookup_internal > (receiver=0x7fffffff7d80, selector=0x7ffff7b86f30, sender=0x0) at > sendmsg2.c:96 > #92233 0x00007ffff6a80ea8 in objc_msg_lookup_sender (receiver=0x7fffffff7d80, > selector=0x7ffff7b86f30, sender=0x0) at sendmsg2.c:171 > #92234 0x00007ffff77347be in gs_objc_proxy_lookup (receiver=0x2b4d9b8, > op=0x7ffff7b86f30) at GSFFIInvocation.m:276 > #92235 0x00007ffff6a810d2 in objc_msg_lookup_internal > (receiver=0x7fffffff7e90, selector=0x7ffff7b86f30, sender=0x0) at > sendmsg2.c:96 > #92236 0x00007ffff6a80ea8 in objc_msg_lookup_sender (receiver=0x7fffffff7e90, > selector=0x7ffff7b86f30, sender=0x0) at sendmsg2.c:171 > #92237 0x00007ffff77347be in gs_objc_proxy_lookup (receiver=0x2b4d9b8, > op=0x7ffff7b86f30) at GSFFIInvocation.m:276 > #92238 0x00007ffff6a810d2 in objc_msg_lookup_internal > (receiver=0x7fffffff7fa0, selector=0x7ffff7b86f30, sender=0x0) at > sendmsg2.c:96 > #92239 0x00007ffff6a80ea8 in objc_msg_lookup_sender (receiver=0x7fffffff7fa0, > selector=0x7ffff7b86f30, sender=0x0) at sendmsg2.c:171 > #92240 0x00007ffff77347be in gs_objc_proxy_lookup (receiver=0x2b4d9b8, > op=0xa68660) at GSFFIInvocation.m:276 > #92241 0x00007ffff6a810d2 in objc_msg_lookup_internal > (receiver=0x7fffffff8550, selector=0xa68660, sender=0x2b4d9b8) at > sendmsg2.c:96 > #92242 0x00007ffff6a80ea8 in objc_msg_lookup_sender (receiver=0x7fffffff8550, > selector=0xa68660, sender=0x2b4d9b8) at sendmsg2.c:171 > #92243 0x0000000000591c43 in -[Item initWithCoder:] (self=0x2b4d9b8, > _cmd=0x7ffff7b24820, aDecoder=0xda4308) at Classes/Model/Immutable/Item.m:241 > #92244 …. About 80 more stack frames of my code. > > Thanks > > Tom Davie > _______________________________________________ > Gnustep-dev mailing list > [email protected] > https://lists.gnu.org/mailman/listinfo/gnustep-dev -- Sent from my PDP-11 _______________________________________________ Gnustep-dev mailing list [email protected] https://lists.gnu.org/mailman/listinfo/gnustep-dev
