안녕하세요
일단 발생하는 샘플 제작은 당장은 좀 대응이 어려울거 같고(샘플로 된다는 보장이 없어보이는게 위에 저부분 왜에도 약간 불특정으로 발생하는거 같습니다.) 다만 관련해서 발생한 Sentry 리포트 유효해 보이는 두개를 일단 공유 드리고 해당 Sentry 리포트에 관해 궁금한게 해당 리포트 파일을 보시면
Application Specific Information:
Pool->TableIndex > 0 >
Stack overflow in
이부분에서 실제 관련 엔진 코드를 가보면 아래 부분이 있는데 해당 부분과 연관지어서 생각할수 있는 부분이 있을까요?
FMalloc* FApplePlatformMemory::BaseAllocator()
case EMemoryAllocatorToUse::Binned:
{
// get free memory
vm_statistics Stats;
mach_msg_type_number_t StatsSize = sizeof(Stats);
host_statistics(mach_host_self(), HOST_VM_INFO, (host_info_t)&Stats, &StatsSize);
// 1 << FMath::CeilLogTwo(MemoryConstants.TotalPhysical) should really be FMath::RoundUpToPowerOfTwo,
// but that overflows to 0 when MemoryConstants.TotalPhysical is close to 4GB, since CeilLogTwo returns 32
// this then causes the MemoryLimit to be 0 and crashing the app
uint64 MemoryLimit = FMath::Min<uint64>( uint64(1) << FMath::CeilLogTwo((Stats.free_count + Stats.inactive_count) * GetConstants().PageSize), 0x100000000);
// [RCL] 2017-03-06 FIXME: perhaps BinnedPageSize should be used here, but leaving this change to the Mac platform owner.
return new FMallocBinned((uint32)(GetConstants().PageSize&MAX_uint32), MemoryLimit);
}
추가적으로 자체적으로
#define USE_MALLOC_BINNED2 (PLATFORM_MAC) -> #define USE_MALLOC_BINNED2 (PLATFORM_MAC || PLATFORM_IOS) 수정해서 Binned2로 사용하면 크래쉬가 발생안하는거 같은데(좀 테스트를 오래해봐야 될거 같긴하지만) 사용방법에 문제는 없을지도 한번 문의드립니다.