我们的应用程序从未使用过模拟器(由于没有对i386和x86_64的第三方依赖性支持)。我刚刚解决了依赖关系,我现在正在模拟器上以64位模式运行,但我看到一个崩溃说EXC_i386_GPFLT。没有扩展代码,所以我无法确定错误到底是什么。
是否可能是对齐错误,还是我应该将其视为错误的地址?在64位设备上根本不会发生崩溃。 memcpy_s只是memmove的一个宏,我们在其中进行一些大小检查。
这是股票的顶部,以便您可以看到实际引发异常的位置。
EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
* frame #0: 0x0000000109cd23a0 libsystem_platform.dylib`_platform_memmove$VARIANT$Nehalem + 96
frame #1: 0x0000000109a66bd4 libsystem_sim_c.dylib`__memmove_chk + 22
frame #2: 0x0000000103b5ee21 appName`memcpy_s(dest=0x6ba6820000000800, sizeInBytes=2, src=0x00007fb26c0ebc18, count=2048) + 113 at file.h:26