SilverFruity / OCRunner

Execute Objective-C code as script. AST Interpreter. iOS hotfix SDK.
MIT License
660 stars 149 forks source link

当使用OCRunnerArm64时,NSLog()可变参数,如果传入的值为int类型,必崩 #22

Open windfanstry opened 2 years ago

windfanstry commented 2 years ago

OCRunnerArm64 Version: 1.2.0

description: 执行下列代码: int i1 = 1; int i2 = 2; NSLog(@"%d,%d,%@",i1,i2,@"1234"); 会触发崩溃,疑似转为long型,即可成功,是否与内存分配不足有关? example: xxxxx image

SilverFruity commented 2 years ago

OCRunnerArm64 已经很久没维护过了,不建议使用它

windfanstry commented 2 years ago

该问题,在OCRunnerArm64中,会崩溃 原因是 NSAA计算时,没有按照规则规则,对齐最小8,导致的。(NSAA最小应该是8,int会导致NSAA是4)

SilverFruity commented 1 year ago

该问题,在OCRunnerArm64中,会崩溃 原因是 NSAA计算时,没有按照规则规则,对齐最小8,导致的。(NSAA最小应该是8,int会导致NSAA是4)

相关修改欢迎提交 PR 😄