gnustep-dev
[Top][All Lists]
Advanced

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

Re: 来自bellabs的邮件


From: Frederik Seiffert
Subject: Re: 来自bellabs的邮件
Date: Sat, 15 Jul 2023 22:10:30 +0200

Can you send a backtrace of the crash („bt“ command in LLDB)?


Am 13.07.2023 um 05:41 schrieb bellabs <bellabs@163.com>:


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.


reply via email to

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