Hi David,

David Chisnall wrote:

From the back trace, this looks as if it's the v2 ABI.  The assert that's firing is here:

https://github.com/gnustep/libobjc2/blob/ed8eec6c6aa82b049fc8292d0c247b8cd6c2fddc/protocol.c#L224

So it's finding an isa pointer for a protocol that is neither the one of the known protocol classes and not a known version number. So the question is... what is it?  Can you walk up the stack to that point and see?

I tried recompiling base with debug, but no information, the stacktrace has nothing.

I tried SWK vespucci on NetBSD (other system) with GCC and it works fine. And on FreeBSD with clang/libobjc2 and it works.
So the issue is "here"... Wonder why.

Unknown protocol version
Program received signal SIGABRT, Aborted.
0x00007afc75d678aa in _lwp_kill () from /usr/lib/libc.so.12
(gdb) bt
#0  0x00007afc75d678aa in _lwp_kill () from /usr/lib/libc.so.12
#1  0x00007afc75d6715a in abort () from /usr/lib/libc.so.12
#2  0x00007afc76618d56 in init_protocols ()
   from /System/Library/Libraries/libobjc.so.4.6
#3  0x00007afc76618b0d in objc_init_protocols ()
   from /System/Library/Libraries/libobjc.so.4.6
#4  0x00007afc76612647 in objc_load_class ()
   from /System/Library/Libraries/libobjc.so.4.6
#5  0x00007afc76618235 in __objc_load ()
   from /System/Library/Libraries/libobjc.so.4.6
#6  0x00007afc76dacbcd in objcv2_load_function ()
   from /System/Library/Libraries/libgnustep-base.so.1.27.0
#7  0x00007afc76dab994 in ?? ()
   from /System/Library/Libraries/libgnustep-base.so.1.27.0
#8  0x00007afc777e9c00 in ?? ()
#9  0x00007afc76da8629 in _init ()
   from /System/Library/Libraries/libgnustep-base.so.1.27.0
#10 0x0000000000000000 in ?? ()

I suppose I should be able to inspect #6 and see what it is loading?

I tried compiling with no optimization, with debug... I can't get a better stacktrace.

Perhaps libobjc? how can I compile libobic2 in debug? I think I need to activate  CMAKE_ASM_FLAGS_DEBUG    somehow

Riccardo

Reply via email to