Can you send a backtrace of the crash („bt“ command in LLDB)?
> Am 13.07.2023 um 05:41 schrieb bellabs <bell...@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.