게임 개발/Unreal Engine 기본

[UE4] Assertion - DO_CHECK, DO_GUARD_SLOW, DO_ENSURE

지노윈 2022. 2. 16. 23:46
반응형

 

Runtime\Core\Public\Misc\Build.h

 

DO_GUARD_SLOW 1이면,

checkSlow, checkfSlow, verifySlow 실행
DO_CHECK 1이면,

checkCode, checkf, verify, check, checkNoEntry, checkNoReentry, checkNoRecursion, verifyf, checkf 실행
DO_ENSURE 1이면,

ensure, ensureAlways, ensureMsgf, ensureAlwaysMsgf 실행

 

  DEBUG DEVELOPMENT TEST SHIPPING  SHIPPING EDITOR
DO_GUARD_SLOW 1 0 0 0 0
DO_CHECK 1 1 0 0 1
DO_ENSURE 1 1 0 0 1

 

 

Build.h에 정의된 코드를 같추려 보면 다음과 같습니다.

#define USE_CHECKS_IN_SHIPPING 0
#define USE_ENSURES_IN_SHIPPING USE_CHECKS_IN_SHIPPING

#if UE_BUILD_DEBUG
	#define DO_GUARD_SLOW	1
	#define DO_CHECK		1
	#define DO_ENSURE		1
#elif UE_BUILD_DEVELOPMENT
	#define DO_GUARD_SLOW	0
	#define DO_CHECK		1
	#define DO_ENSURE		1
#elif UE_BUILD_TEST
	#define DO_GUARD_SLOW	0
	#define DO_CHECK		USE_CHECKS_IN_SHIPPING
	#define DO_ENSURE		USE_ENSURES_IN_SHIPPING
#elif UE_BUILD_SHIPPING
	#if WITH_EDITOR
		#define DO_GUARD_SLOW	0
		#define DO_CHECK		1
		#define DO_ENSURE		1
	#else
		#define DO_GUARD_SLOW	0
		#define DO_CHECK		USE_CHECKS_IN_SHIPPING
		#define DO_ENSURE		USE_ENSURES_IN_SHIPPING
	#endif
#endif

 

Assertion의 활용은 다음글을 참고해 주세요.

[게임 개발/Unreal Engine 기본] - [UE4] Assertion 이해하기