Re: 来自bellabs的邮 件

Frederik Seiffert <[email protected]> Sat, 15 Jul 2023 22:10:30 +0200
Newsgroups gmane.comp.lib.gnustep.devel,gmane.comp.lib.gnustep.general,gmane.comp.lib.gnustep.bugs
Message-ID <[email protected]>
Can you send a backtrace of the crash („bt“ command in LLDB)?


> Am 13.07.2023 um 05:41 schrieb bellabs <[email protected]>:
> 
> Thanks for the reminder again, the reason I couldn't run lldb's before was because the version of python I installed didn't match, now it works fine! I get the following error using the lldb debugger:
> (lldb) Process 2444 launched: 'C:\demo/test.exe' (x86_64)
> Process 2444 stopped
> * thread #1, stop reason = Exception 0xc0000005 encountered at address 0x7ff88ae8d14a: Access violation reading location 0x000001a0
>     frame #0: 0x00007ff88ae8d14a objc.dll`objc_msgSend + 70
> objc.dll`objc_msgSend:
> ->  0x7ff88ae8d14a <+70>: movq   0x8(%r10,%rbx,8), %r10
>     0x7ff88ae8d14f <+75>: movzbl %al, %ebx
>     0x7ff88ae8d152 <+78>: movq   -0x8(%rsp), %rax
>     0x7ff88ae8d157 <+83>: movq   0x8(%r10,%rbx,8), %r10
> 
> 
> Based on the debugging information I've determined that it's because of a pointer error, but I've checked that my code doesn't use pointers incorrectly, and the debugging information mentions objc_xxx, which suggests that it's an error in the objc itself possiblely. After testing the objc_ related runtime function really does not work properly, the test code and test results are as follows:
> @interface LayoutManager : NSObject
> - (void)display;
> @end
> 
> @implementation LayoutManager
> - (void)display {
> 	printf("LayoutManager::display\n");
> }
> @end
> 
> void test() {
> 
> }
> 
> int main() {
> 	// LayoutManager *relative = [[LayoutManager alloc]init];
> 	// [relative display];	
> 
> 	id aClassFromName = objc_getClass("LayoutManager");
> 	NSLog(@"aClass = %@", aClassFromName); //! null
> 	id aClassFromClass = [NSArray class]; //! error
> 	NSLog(@"aClass = %@", aClassFromClass); // Never go through here.
> 
> 	return 0;
> }
> 
> China Guy.