discuss-gnustep
[Top][All Lists]
Advanced

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

Re: loading bundles stopped working


From: David Chisnall
Subject: Re: loading bundles stopped working
Date: Mon, 26 Nov 2018 15:14:36 +0000
User-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.3.1

On 26/11/2018 15:03, Sebastian Reitenbach wrote:
 From the stacktrace, It's the last NSCAssert1 that fires, right after that 
line:
backend = NSClassFromString (@"GSBackend");

Yup.  That makes me think either:

- The dlopen failed.
- The dlopen returned success, but didn't call the constructor, so it didn't call __objc_exec_class.
- The library was loaded but some memory was corrupted.

So before that, there's the other NSCAssert1, [theBundle load], and since
this doesn't fire, I think loading it, went OK?
But I might well be on the wrong track.

Can you disable the breakpoint on __objc_exec_class until just before the [theBundle load] line, then enable it and make sure that it's called *after* the dlopen call? Can you also check in the code that we're actually checking the return from dlopen correctly (I'm pretty sure we are).

If all this works, can you check in each __objc_exec_class call and see if one of the classes that it loads is called GSBackend? If so, then it looks as if there's still something wrong with the hash table in libobjc2. I think I back-ported all of the fixes to the 1.9 branch, but I might have missed one...

David



reply via email to

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