Xcode 地址消毒器无法分配字节
尝试在启用地址清理器的情况下构建iOS应用程序时出现此错误Xcode 地址消毒器无法分配字节,xcode,address-sanitizer,Xcode,Address Sanitizer,尝试在启用地址清理器的情况下构建iOS应用程序时出现此错误 ==3850==ERROR: AddressSanitizer failed to allocate 0xffffffffff9fc000 (-6307840) bytes at address 2db624000 (errno: 22) ==3850==ReserveShadowMemoryRange failed while trying to map 0xffffffffff9fc000 bytes. Perhaps you're
==3850==ERROR: AddressSanitizer failed to allocate 0xffffffffff9fc000 (-6307840) bytes at address 2db624000 (errno: 22)
==3850==ReserveShadowMemoryRange failed while trying to map 0xffffffffff9fc000 bytes. Perhaps you're using ulimit -v
如何解决这个问题以及ulimit-v是什么调试它完全取决于您的代码。通常在运行时处理消毒器错误,因此您需要寻找导致这种情况发生的原因,或者您需要不断简化代码,直到找到问题。继续删除部分程序,直到错误消失。您删除的最后一个内容将包含该问题
ulimit-v
意味着在进程空间中有意限制虚拟内存。如果您不熟悉这是如何完成的,那么这很可能不相关。ulimit
是一种防止单个用户使用过多共享资源的方法。在本例中,基本问题是要分配的字节数是一个负数(-6307840),该负数被强制转换为unsigned,导致其换行为一个非常大的正数(~180亿GB)。调试这完全取决于您的代码。通常在运行时处理消毒器错误,因此您需要寻找导致这种情况发生的原因,或者您需要不断简化代码,直到找到问题。继续删除部分程序,直到错误消失。您删除的最后一个内容将包含该问题ulimit-v
意味着在进程空间中有意限制虚拟内存。如果您不熟悉这是如何完成的,那么这很可能不相关。ulimit
是一种防止单个用户使用过多共享资源的方法。在本例中,基本问题是要分配的字节数是一个负数(-6307840),该负数被强制转换为unsigned,从而导致它变为一个非常大的正数(~180亿GB)。