Developer Notes

This crash appears to have been a result of a bug in versions 15.7 and 15.8 of Visual Studio 2017. Updating to 15.9.2 and rebuilding the Engine and Unreal Frontend seems to have resolved the crash.

Description

If Unreal Frontend has been built in the Development Editor configuration, attempting to open a ue4stats file in the Profiler tab results in the Unreal Frontend crashing. The crash does not occur if Unreal Frontend was built with the Debug Editor configuration.

REGRESSION:
No. The same results occur in 4.20.3.

Steps to Reproduce

SETUP:
Make sure Unreal Frontend has been built with the Development Editor configuration.

REPRO:

  1. Open any existing project in the Editor (or create a new one).
  2. Open the console command entry field.
  3. Enter Stat StartFile
  4. Wait several seconds to allow a stat file to be created.
  5. Enter Stat StopFile
  6. Close the Editor.
  7. Run UnrealFrontend.exe
  8. Select the Session Frontend.
  9. Select the Profiler tab.
  10. Click the Load button.
  11. Locate the ue4stats file created above.
    • This will be found in the project's Saved/Profiling directory.
  12. Double-click the ue4stats file to load it (or select the file and click the Open button).

RESULT:
Unreal Frontend crashes due to an Access Violation error.

EXPECTED:
The ue4stats file is opened successfully.

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

UnrealFrontend_Profiler!FProfilerManager::TrackStat() [d:\main-builds\stream\engine\source\developer\profiler\private\profilermanager.cpp:554]
UnrealFrontend_Profiler!FProfilerManager::ProfilerClient_OnProfilerData() [d:\main-builds\stream\engine\source\developer\profiler\private\profilermanager.cpp:383]
UnrealFrontend_Profiler!TBaseSPMethodDelegateInstance<0,FProfilerManager,0,void __cdecl(FGuid const &,FProfilerDataFrame const &)>::ExecuteIfSafe() [d:\main-builds\stream\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:355]
UnrealFrontend_ProfilerClient!TBaseMulticastDelegate<void,FGuid const &,FProfilerDataFrame const &>::Broadcast() [d:\main-builds\stream\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:974]
UnrealFrontend_ProfilerClient!FProfilerClientManager::SendProfilerDataFrameToGame() [d:\main-builds\stream\engine\source\developer\profilerclient\private\profilerclientmanager.cpp:813]
UnrealFrontend_ProfilerClient!TBaseRawMethodDelegateInstance<0,FProfilerClientManager,void __cdecl(void),FProfilerDataFrame *,FStatMetaData *,FGuid>::ExecuteIfSafe() [d:\main-builds\stream\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:518]
UnrealFrontend_ProfilerClient!TGraphTask<FSimpleDelegateGraphTask>::ExecuteTask() [d:\main-builds\stream\engine\source\runtime\core\public\async\taskgraphinterfaces.h:842]
UnrealFrontend_Core!FNamedTaskThread::ProcessTasksNamedThread() [d:\main-builds\stream\engine\source\runtime\core\private\async\taskgraph.cpp:686]
UnrealFrontend_Core!FNamedTaskThread::ProcessTasksUntilQuit() [d:\main-builds\stream\engine\source\runtime\core\private\async\taskgraph.cpp:582]
UnrealFrontend_Core!FTaskGraphImplementation::WaitUntilTasksComplete() [d:\main-builds\stream\engine\source\runtime\core\private\async\taskgraph.cpp:1457]
UnrealFrontend_Profiler!FProfilerSession::CompletionSyncAggregatedEventGraphData() [d:\main-builds\stream\engine\source\developer\profiler\private\profilersession.cpp:358]
UnrealFrontend_Profiler!FProfilerSession::UpdateAggregatedEventGraphData() [d:\main-builds\stream\engine\source\developer\profiler\private\profilersession.cpp:326]
UnrealFrontend_Profiler!FProfilerSession::HandleTicker() [d:\main-builds\stream\engine\source\developer\profiler\private\profilersession.cpp:518]
UnrealFrontend_Core!FTicker::Tick() [d:\main-builds\stream\engine\source\runtime\core\private\containers\ticker.cpp:92]
UnrealFrontend!FUserInterfaceCommand::Run() [d:\main-builds\stream\engine\source\programs\unrealfrontend\private\commands\userinterfacecommand.cpp:88]
UnrealFrontend!UnrealFrontendMain() [d:\main-builds\stream\engine\source\programs\unrealfrontend\private\unrealfrontendmain.cpp:109]
UnrealFrontend!WinMain() [d:\main-builds\stream\engine\source\programs\unrealfrontend\private\windows\windowsunrealfrontendmain.cpp:58]
UnrealFrontend!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
kernel32
ntdll

Have Comments or More Details?

There's no existing public thread on this issue, so head over toAnswerHub just mention UE-66907 in the post.

2
Login to Vote

Non-Issue
ComponentCore
Affects Versions4.214.224.20.3
CreatedNov 27, 2018
ResolvedNov 28, 2018
UpdatedDec 3, 2018