gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: assertion when using clang + libobjc2


From: Riccardo Mottola
Subject: Re: assertion when using clang + libobjc2
Date: Thu, 7 Jun 2018 00:39:07 +0200
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0 SeaMonkey/2.49.3

Hi David,

David Chisnall wrote:
Thank you for the report.  Most of the tests don’t build with the GCC ABI, so 
that code path is not as well tested as the two newer ABIs - thank you for 
testing it, and please do file bugs if you hit any more issues.  I believe this 
is now fixed in git.

I did further thests here and a clean build and recompile of everything. I did compile a debug version of gnustep-base (although maybe a one for libobjc is needed to, how is it done with cmake?)

As I wrote, simple tools like plparse do now work, but any gui application will file.

Here a clean version of Ink:

2018-06-07 00:11:27.699 Ink[6673:6673] styleoffsets ... guessing offsets
2018-06-07 00:11:27.701 Ink[6673:6673] styleoffsets ... guessing offsets

Program received signal SIGSEGV, Segmentation fault.
__strcmp_ia32 () at ../sysdeps/i386/i686/multiarch/../strcmp.S:33
33      ../sysdeps/i386/i686/multiarch/../strcmp.S: No such file or directory.

#0  __strcmp_ia32 () at ../sysdeps/i386/i686/multiarch/../strcmp.S:33
#1  0xb71058c0 in string_compare ()
   from /System/Library/Libraries/libobjc.so.4.6
#2  0xb71057bc in sel_isEqual () from /System/Library/Libraries/libobjc.so.4.6
#3  0xb710008d in get_method_description ()
   from /System/Library/Libraries/libobjc.so.4.6
#4  0xb70fff8f in protocol_getMethodDescription ()
   from /System/Library/Libraries/libobjc.so.4.6
#5  0xb75b3443 in GSProtocolGetMethodDescriptionRecursive (
    aProtocol=0xb77bfa50 <.objc_protocol.103>,
    aSel=0xb77c0080 <.objc_selector_list+192>, isRequired=1 '\001',
    isInstance=1 '\001') at GSObjCRuntime.m:827
#6  0xb738bf5c in -[NSDistantObject methodSignatureForSelector:] (
    self=0x86bf9cc, _cmd=0xb78030f4 <.objc_selector_list+200>,
    aSelector=0xb77c0080 <.objc_selector_list+192>) at NSDistantObject.m:727
#7  0xb75af5d4 in GSFFIInvocationCallback (cif=0x86c5f40, retp=0xbfffe8a0,
    args=0xbfffe830, user=0x86bdc44) at GSFFIInvocation.m:538
#8  0xb4abba75 in ?? () from /usr/lib/libffi.so.6
#9  0xb4abbe26 in ?? () from /usr/lib/libffi.so.6
#10 0xb7392bdb in -[NSDistributedNotificationCenter(Private) _connect] (
    self=0x868cbe4, _cmd=0xb77c0048 <.objc_selector_list+136>)
    at NSDistributedNotificationCenter.m:781
#11 0xb73904e9 in -[NSDistributedNotificationCenter addObserver:selector:name:object:suspensionBehavior:] (self=0x868cbe4,
    _cmd=0xb77c0038 <.objc_selector_list+120>, anObserver=0x868c8f4,
    aSelector=0xb7f5b798 <.objc_selector_list+352>, notificationName=0x0,
    anObject=0xb7f5b350 <.objc_str.437>, suspensionBehavior=2)
    at NSDistributedNotificationCenter.m:341
#12 0xb7390069 in -[NSDistributedNotificationCenter addObserver:selector:name:object:] (self=0x868cbe4, _cmd=0xb7f5b850 <.objc_selector_list+536>,
    anObserver=0x868c8f4, aSelector=0xb7f5b798 <.objc_selector_list+352>,
    notificationName=0x0, anObject=0xb7f5b350 <.objc_str.437>)
    at NSDistributedNotificationCenter.m:266
#13 0xb7c49253 in -[_GSWorkspaceCenter init] (self=0x868c8f4,
    _cmd=<optimized out>) at NSWorkspace.m:335

I get no information inside libobjc, however:

(gdb) list
822     struct objc_method_description
823     GSProtocolGetMethodDescriptionRecursive(Protocol *aProtocol, SEL aSel, BOOL isRequired, BOOL isInstance)
824     {
825       struct objc_method_description desc;
826
827       desc = protocol_getMethodDescription(aProtocol, aSel, isRequired, isInstance);
828       if (desc.name == NULL && desc.types == NULL)
829         {
830           Protocol **list;
831           unsigned int count;


(gdb) po NSStringFromSelector(aSel)
registerClient:

at first, it does not seem wrong, something is doing hfavoc inside method description or sel_isEqual


maybe with debug information for libobjc2 I can give you better information

Riccardo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]