Hi, im getting a crash specifically when loading a new map on a shipping build(this crash does not leave any log)
The UE5-Helbreath3d Game has crashed and will close
LowLevelFatalError [File:C:\UnrealEngine-5.0.2\Engine\Source\Runtime\Engine\Classes\Debug\DebugDrawComponent.h] [Line: 58]
Pure virtual not implemented (UDebugDrawComponent::CreateSceneProxyInternal)
I have already googled this but the only topic i found is partially related and it does not apply to this issue. Please note that this issue does not happen on dev builds.
Hey there @imnomad, is this an unmodified engine build? It seems to be complaining that a built in class (UDebugDrawComponent) is trying to call a pure virtual function of what it derives from, but it’s not really made to do so.
That’s a bit odd. I’m by no means an expert on the engine code so I’ll do some research to see what I can find. If you find anything out before I do, let me know here!
I have been looking for a solution to fix this issue for the last couple of months without success, also, im not sure on how can i replicate this issue, since its a project we have been working on for at least 7 years.
I have an idea of a community member who might have a better answer for this one, I’ve sent them a PM. I’ll also ask another team member who has more knowledge to see if he has a better idea.
In the meantime for workarounds, is it only upon shifting to a specific level or all of them? Is there any way to disable all direct calls to DrawDebug in the meantime? I’d hate to ask it, but the fix I was thinking would mean modifying the internals, which since I’m not incredibly well versed engine side I don’t wanna give incorrect info there haha.
I was thinking we’d either have to disable the virtual call (catastrophic consequences) or make the virtual call possible on the main script and then just make it do nothing, but I’m not sure of the ramifications of it, so I’ll defer to some experts on this one. Rest assured, I’m digging into my resources.
Ii is when loading any level out of the main menu level. I have tried commenting on the pure virtual line in DebugDrawComponent, but the engine won’t compile. I have also tried commenting “US_BUILD_SHIPPING” in EngineDefines.h, specifically in the define “UE_ENABLE_DEBUG_DRAWING”
#ifndef UE_ENABLE_DEBUG_DRAWING
// we can debug render data in Debug/Development builds or the Editor in Shipping or Test builds (not a common situation, but it is possible)
#define UE_ENABLE_DEBUG_DRAWING (!(/*UE_BUILD_SHIPPING || */UE_BUILD_TEST) || WITH_EDITOR)
#endif
Like this, and it compiled, but then the project won’t compile in the frontend.
Team member got back to me saying it was likely caused by the packaging for Shipping gutting all debug draws. So I came by to suggest something similar to what you were doing here then realized you already tried it.