DO_CHECK=1 只在打包时跟随USE_CHECKS_IN_SHIPPING的设置 DO_GUARD_SLOW=0 只在debug模式为1 三种类型的断言 1. 停止执行 (check族) 表达式为false即立刻中断,引擎崩溃 2. Debug(DO_GUARD_SLOW=1)时停止执行 (checkSlow族) 仅在Debug模式下崩溃 3. 不停止执行 (ensure族) 不会中断 但会生成callstack...
Ensure 宏在所有版本中计算表达式的值,但仅在 Debug、Development、Test 和 Shipping Editor 版本通知 crash reporter 用例 以下假设情况展示了一些用例,其中Check、Verify和Ensure可帮助理清代码或协助调试。 // 决不可使用空JumpTarget调用此函数。若发生此情况,须停止程序。voidAMyActor::CalculateJumpVelocity(AActor*...
Ensure 族系类似于 verify 族系(即计算其表达式的值),但可在出现非致命错误时继续运行。这意味着,若 ensure(false) 时引擎会通知 crash reporter ,但仍会继续运行。默认情况下,ensure 宏仅报告一次,需要每次都报告时使用 ensureAlways 宏。 // 若expr为false,上报给crash reporterensure(expr)或ensureAlways(expr...
取而代之的做法是,使用 “check()” 函数来触发严重的错误。可以传入一个错误信息提示。如果只是想报告一个错误,但并不希望打断整个程序,可以使用 “ensure()”。这将会记录一个完整堆栈的日志信息,但程序会继续执行。如果当前附加了调试器,那么这两个函数都会暂定并进入调试器。 29. .NET Framework去哪里了 unit...
check(NumTaskThreadSets == 1 || FMath::Min<int32>(NumTaskThreads * NumTaskThreadSets + NumNamedThreads, MAX_THREADS) == NumTaskThreads * NumTaskThreadSets + NumNamedThreads); NumThreads = FMath::Max<int32>(FMath::Min<int32>(NumTaskThreads * NumTaskThreadSets + NumNamedThreads, MAX_...
* Loads the specified module, checking to ensure it exists. * * @param InModuleName The base name of the module file. Should not include path, extension or platform/configuration info. This is just the "module name" part of the module file name. Names should be globally unique. ...
Outer = NewOuter;check(Outer);if(ensure(BaseType) &&ensureMsgf(SubsystemMap.Num() ==0,TEXT("Currently don't support repopulation of Subsystem Collections."))) {check(!bPopulating);//Populating collections on multiple threads?if(SubsystemCollections.Num() ==0) ...
check(Queue(QueueIndex).StallRestartEvent); // make sure we are started up Queue(QueueIndex).QuitForReturn = false; verify(++Queue(QueueIndex).RecursionGuard == 1); do { ProcessTasksNamedThread(QueueIndex, FPlatformProcess::SupportsMultithreading()); ...
{SCOPE_CYCLE_COUNTER(STAT_SpawnActorTime);CSV_SCOPED_TIMING_STAT_EXCLUSIVE(ActorSpawning);#ifWITH_EDITORONLY_DATA判断当前的Level是否有值check(CurrentLevel);//判断是不是在编辑器内,如果不是check会直接导致崩溃check(GIsEditor||(CurrentLevel==PersistentLevel));#elseULevel*CurrentLevel=PersistentLevel;#...