Wow, I ignored email for a week and there are 50 unread emails in my GNUstep folder! Great to see some renewed interest and activity in the project!
> On 17 Jun 2020, at 12:28, Riccardo Mottola <[email protected]> wrote: > > Hi, > > Wolfgang Lux wrote: >>> Perhaps libobjc? how can I compile libobic2 in debug? I think I need to >>> activate CMAKE_ASM_FLAGS_DEBUG somehow >> No. But you want to reconfigure libobjc2 with >> CMAKE_BUILD_TYPE=RelWithDebInfo (or, if you absolutely insist on turning off >> optimization, CMAKE_BUILD_TYPE=Debug). > > thank you. I used "Debug" to be most extreme (and also to exclude issues with > optimizations, which never hurts). Debug doesn’t make actually much of a difference to overall performance. The most performance critical bits are hand-coded assembly. > It still crashes and so: > > 0x0000753c801678aa in _lwp_kill () from /usr/lib/libc.so.12 > (gdb) bt > #0 0x0000753c801678aa in _lwp_kill () from /usr/lib/libc.so.12 > #1 0x0000753c8016715a in abort () from /usr/lib/libc.so.12 > #2 0x0000753c80a18d56 in init_protocols (protocols=0x753c816c91b0 > <objc_protocol_list>) > at /home/multix/code/gnustep-vcs/libobjc2/protocol.c:225 > #3 0x0000753c80a18b0d in objc_init_protocols (protocols=0x753c816c91b0 > <objc_protocol_list>) > at /home/multix/code/gnustep-vcs/libobjc2/protocol.c:258 > #4 0x0000753c80a12647 in objc_load_class (class=0x753c816c91d0 > <._OBJC_CLASS_NSAffineTransform>) > at /home/multix/code/gnustep-vcs/libobjc2/class_table.c:465 > #5 0x0000753c80a18235 in __objc_load (init=0x753c816ba9a0 <objc_init>) > at /home/multix/code/gnustep-vcs/libobjc2/loader.c:268 > #6 0x0000753c812baced in objcv2_load_function () from > /System/Library/Libraries/libgnustep-base.so.1.27.0 > #7 0x0000753c812b9ab4 in ?? () from > /System/Library/Libraries/libgnustep-base.so.1.27.0 > #8 0x0000753c81cf7c00 in ?? () > #9 0x0000753c812b6749 in _init () from > /System/Library/Libraries/libgnustep-base.so.1.27.0 > #10 0x0000000000000000 in ?? () > > how can I print out this? > (gdb) p protocols > $4 = (struct objc_protocol_list *) 0x753c816c91b0 <objc_protocol_list> > > just to know which "list" and what should be loaded, I suppose there is an > error here. This is the protocol list that is currently being initialised. It would be interesting to see what `i` is (I guess 0), because they tells us if we’re failing on the first protocol in a class or a subsequent one. Then look at `version`, which should be a protocol version number. If it isn’t a small value (<16), look at `aProto->isa`. Can you also confirm whether you’ve built with OLDABI_COMPAT enabled? If you didn’t, then you’ll see this message if you try to load any code that isn’t compiled with the v2 ABI. David
