Unreal engine crashing

9_be_urc
unreal-cpp

#1

Hey,
When I add:
FString ObjName = GetOwner()->GetName();

To the UPositionReport() method the Unreal engine crashes when compiling with the following stack trace:

Access violation - code c0000005 (first/second chance not available)

UE4Editor_CoreUObject!UObjectBaseUtility::GetName() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\coreuobject\public\uobject\uobjectbaseutility.h:355]
UE4Editor_BuildingEscape_8236!UPositionReport::UPositionReport() [c:\users\strautins\documents\udemy\unreal projects\section_03\buildingescape\source\buildingescape\positionreport.cpp:13]
UE4Editor_HotReload!FHotReloadClassReinstancer::ReconstructClassDefaultObject() [d:\build\++ue4+release-4.16+compile\sync\engine\source\developer\hotreload\private\hotreloadclassreinstancer.cpp:214]
UE4Editor_HotReload!FHotReloadClassReinstancer::RecreateCDOAndSetupOldClassReinstancing() [d:\build\++ue4+release-4.16+compile\sync\engine\source\developer\hotreload\private\hotreloadclassreinstancer.cpp:249]
UE4Editor_HotReload!FHotReloadClassReinstancer::FHotReloadClassReinstancer() [d:\build\++ue4+release-4.16+compile\sync\engine\source\developer\hotreload\private\hotreloadclassreinstancer.cpp:322]
UE4Editor_HotReload!FHotReloadClassReinstancer::Create() [d:\build\++ue4+release-4.16+compile\sync\engine\source\developer\hotreload\private\hotreloadclassreinstancer.h:120]
UE4Editor_HotReload!FHotReloadModule::ReinstanceClass() [d:\build\++ue4+release-4.16+compile\sync\engine\source\developer\hotreload\private\hotreload.cpp:1275]
UE4Editor_HotReload!FHotReloadModule::ReinstanceClasses() [d:\build\++ue4+release-4.16+compile\sync\engine\source\developer\hotreload\private\hotreload.cpp:1262]
UE4Editor_HotReload!TBaseRawMethodDelegateInstance<0,FHotReloadModule,void __cdecl(void)>::ExecuteIfSafe() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:648]
UE4Editor_CoreUObject!TBaseMulticastDelegate<void>::Broadcast() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:937]
UE4Editor_CoreUObject!UClassReplaceHotReloadClasses() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectbase.cpp:746]
UE4Editor_CoreUObject!ProcessNewlyLoadedUObjects() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectbase.cpp:899]
UE4Editor_CoreUObject!TBaseStaticDelegateInstance<void __cdecl(void)>::ExecuteIfSafe() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:1027]
UE4Editor_Core!TBaseMulticastDelegate<void>::Broadcast() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:937]
UE4Editor_Core!FModuleManager::LoadModuleWithFailureReason() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\core\private\modules\modulemanager.cpp:479]
UE4Editor_Core!FModuleManager::LoadModule() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\core\private\modules\modulemanager.cpp:338]
UE4Editor_HotReload!FHotReloadModule::DoHotReloadInternal() [d:\build\++ue4+release-4.16+compile\sync\engine\source\developer\hotreload\private\hotreload.cpp:864]
UE4Editor_HotReload!FHotReloadModule::DoHotReloadFromIDE() [d:\build\++ue4+release-4.16+compile\sync\engine\source\developer\hotreload\private\hotreload.cpp:1521]
UE4Editor_HotReload!FHotReloadModule::Tick() [d:\build\++ue4+release-4.16+compile\sync\engine\source\developer\hotreload\private\hotreload.cpp:1454]
UE4Editor_Core!FTicker::Tick() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\core\private\containers\ticker.cpp:82]
UE4Editor!FEngineLoop::Tick() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\launch\private\launchengineloop.cpp:3262]
UE4Editor!GuardedMain() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\launch\private\launch.cpp:166]
UE4Editor!GuardedMainWrapper() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:134]
UE4Editor!WinMain() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:210]
UE4Editor!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:253]
kernel32
ntdll

I’m on Windows 10, Unreal 4.16.2, Visual Studio Community 2017. It seems to be re-producable, If I restore the project and add this line then compile the crash occurs.


#2

Looks like GetOwner() is returning nullptr.


#3

Isn’t nullptr a run-time error? The engine would crash and I could not even open it later. Re-installed Unreal and the problem persisted, so went ahead and re-installed VS and now everything is fine, really hope I won’t run into a similar issue down the line as this was very weird.


#4

Update, a few videos later, working on the door, when logging the rotation with:

AActor *Owner = GetOwner(); FString Rotation = Owner->GetActorRotation().ToString(); UE_LOG(LogTemp, Warning, TEXT("The door rotation is: %s"), *Rotation);

Unreal crashes with the following stack trace:

Fatal error!

Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x00000178

UE4Editor-BuildingEscape-5745.dll!UOpenDoor::UOpenDoor() [c:\users\strautins\documents\udemy\unreal projects\section_03\buildingescape\source\buildingescape\opendoor.cpp:14]
UE4Editor-CoreUObject.dll!UClass::CreateDefaultObject() [d:\build++ue4+release-4.16+compile\sync\engine\source\runtime\coreuobject\private\uobject\class.cpp:2687]
UE4Editor-CoreUObject.dll!UObjectLoadAllCompiledInDefaultProperties() [d:\build++ue4+release-4.16+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectbase.cpp:816]
UE4Editor-CoreUObject.dll!ProcessNewlyLoadedUObjects() [d:\build++ue4+release-4.16+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectbase.cpp:894]
UE4Editor-CoreUObject.dll!TBaseStaticDelegateInstance<void __cdecl(void)>::ExecuteIfSafe() [d:\build++ue4+release-4.16+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:1027]
UE4Editor-Core.dll!TBaseMulticastDelegate::Broadcast() [d:\build++ue4+release-4.16+compile\sync\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:937]
UE4Editor-Core.dll!FModuleManager::LoadModuleWithFailureReason() [d:\build++ue4+release-4.16+compile\sync\engine\source\runtime\core\private\modules\modulemanager.cpp:479]
UE4Editor-Projects.dll!FModuleDescriptor::LoadModulesForPhase() [d:\build++ue4+release-4.16+compile\sync\engine\source\runtime\projects\private\moduledescriptor.cpp:421]
UE4Editor-Projects.dll!FProjectManager::LoadModulesForProject() [d:\build++ue4+release-4.16+compile\sync\engine\source\runtime\projects\private\projectmanager.cpp:60]
UE4Editor.exe!FEngineLoop::LoadStartupModules() [d:\build++ue4+release-4.16+compile\sync\engine\source\runtime\launch\private\launchengineloop.cpp:2470]
UE4Editor.exe!FEngineLoop::PreInit() [d:\build++ue4+release-4.16+compile\sync\engine\source\runtime\launch\private\launchengineloop.cpp:1896]
UE4Editor.exe!GuardedMain() [d:\build++ue4+release-4.16+compile\sync\engine\source\runtime\launch\private\launch.cpp:127]
UE4Editor.exe!GuardedMainWrapper() [d:\build++ue4+release-4.16+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:134]
UE4Editor.exe!WinMain() [d:\build++ue4+release-4.16+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:210]
UE4Editor.exe!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:253]
KERNEL32.DLL!0x0000000067092774
ntdll.dll!0x0000000067B20D51
ntdll.dll!0x0000000067B20D51

I cannot open the project anymore, it crashes with what seems a very similar stack trace:

Access violation - code c0000005 (first/second chance not available)

UE4Editor_BuildingEscape_5745!UOpenDoor::UOpenDoor() [c:\users\strautins\documents\udemy\unreal projects\section_03\buildingescape\source\buildingescape\opendoor.cpp:14]
UE4Editor_CoreUObject!UClass::CreateDefaultObject() [d:\build++ue4+release-4.16+compile\sync\engine\source\runtime\coreuobject\private\uobject\class.cpp:2687]
UE4Editor_CoreUObject!UObjectLoadAllCompiledInDefaultProperties() [d:\build++ue4+release-4.16+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectbase.cpp:816]
UE4Editor_CoreUObject!ProcessNewlyLoadedUObjects() [d:\build++ue4+release-4.16+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectbase.cpp:894]
UE4Editor_CoreUObject!TBaseStaticDelegateInstance<void __cdecl(void)>::ExecuteIfSafe() [d:\build++ue4+release-4.16+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:1027]
UE4Editor_Core!TBaseMulticastDelegate::Broadcast() [d:\build++ue4+release-4.16+compile\sync\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:937]
UE4Editor_Core!FModuleManager::LoadModuleWithFailureReason() [d:\build++ue4+release-4.16+compile\sync\engine\source\runtime\core\private\modules\modulemanager.cpp:479]
UE4Editor_Projects!FModuleDescriptor::LoadModulesForPhase() [d:\build++ue4+release-4.16+compile\sync\engine\source\runtime\projects\private\moduledescriptor.cpp:421]
UE4Editor_Projects!FProjectManager::LoadModulesForProject() [d:\build++ue4+release-4.16+compile\sync\engine\source\runtime\projects\private\projectmanager.cpp:60]
UE4Editor!FEngineLoop::LoadStartupModules() [d:\build++ue4+release-4.16+compile\sync\engine\source\runtime\launch\private\launchengineloop.cpp:2470]
UE4Editor!FEngineLoop::PreInit() [d:\build++ue4+release-4.16+compile\sync\engine\source\runtime\launch\private\launchengineloop.cpp:1896]
UE4Editor!GuardedMain() [d:\build++ue4+release-4.16+compile\sync\engine\source\runtime\launch\private\launch.cpp:127]
UE4Editor!GuardedMainWrapper() [d:\build++ue4+release-4.16+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:134]
UE4Editor!WinMain() [d:\build++ue4+release-4.16+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:210]
UE4Editor!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:253]
kernel32
ntdll

I can compile the code in VS just fine. What I find interesting is that the file paths “d:/…” and “f:/…” don’t exist on my machine. F is a DVD drive, D is a secondary HDD where Unreal IS NOT installed on.
If I comment out said code and rebuild in VS the engine starts up normally.

Indeed, GetOwner is returning NULL, if I add a NULL check before doing something with the AActor there is no crash, but I do see a warning:

LogUObjectGlobals:Warning: Failed to find object 'Class /Script/BuildingEscape.BuildingEscapeGameMode'

#5

It’s likely that the nullptr is in a constructor as these are run by the editor at load time. Indeed, the stack trace shows that your error is in UOpenDoor constructor.


#6

I have the same issue, GetOwner() seems to be null. So how do i get the owner of the component then?


#7

You need to check for null pointers. It might be that the constructor get’s called in certain cases in the engine just to display a blueprint. So it might not have an owner at that point.


#8

Edit:

Sorry I had the code in an error in my code, have resolved!