Description

Looks a crash caused by an access violation when trying to export text from the property for the tooltip. Seems to be limited to arrays of user defined structs and the Widget Blueprint editor.

Steps to Reproduce

As reported by a licensee 

[Link Removed]

  1. Open the attached project.
  1. Open the TestLevel if it isn't open already (it has some blueprint logic to create the widget that triggers the issue).
  1. Open the TestWidget and switch to the Graph view.
  1. Put a breakpoint on the TestFunction node like the following:  [Image Removed]

 

  1. Switch back to the map view and click the Play button.
  1. Once you hit the breakpoint, press F11 to step in.
  1. Attempt to mouse over CrashParam to generate the tooltip and it will crash. 
Callstack
> UE4Editor-CoreUObject.dll!TProperty_WithEqualityAndSerializer<FName,UProperty>::Identical(const void * A, const void * B, unsigned int PortFlags) Line 1121 C++
 [Inline Frame] UE4Editor-CoreUObject.dll!UProperty::Identical_InContainer(const void *) Line 260 C++
 UE4Editor-CoreUObject.dll!UScriptStruct::CompareScriptStruct(const void * A, const void * B, unsigned int PortFlags) Line 2481 C++
 UE4Editor-CoreUObject.dll!UProperty::ExportText_Direct(FString & ValueStr, const void * Data, const void * Delta, UObject * Parent, int PortFlags, UObject * ExportRootScope) Line 721 C++
 [Inline Frame] UE4Editor-CoreUObject.dll!UProperty::ExportText_InContainer(int) Line 334 C++
 UE4Editor-CoreUObject.dll!UScriptStruct::ExportText(FString & ValueStr, const void * Value, const void * Defaults, UObject * OwnerObject, int PortFlags, UObject * ExportRootScope, bool bAllowNativeOverride) Line 2383 C++
 UE4Editor-CoreUObject.dll!UStructProperty::ExportTextItem(FString & ValueStr, const void * PropertyValue, const void * DefaultValue, UObject * Parent, int PortFlags, UObject * ExportRootScope) Line 250 C++
 UE4Editor-CoreUObject.dll!UArrayProperty::ExportTextInnerItem(FString & ValueStr, UProperty * Inner, const void * PropertyValue, int PropertySize, const void * DefaultValue, int DefaultSize, UObject * Parent, int PortFlags, UObject * ExportRootScope) Line 354 C++
 UE4Editor-CoreUObject.dll!UArrayProperty::ExportTextItem(FString & ValueStr, const void * PropertyValue, const void * DefaultValue, UObject * Parent, int PortFlags, UObject * ExportRootScope) Line 330 C++
 UE4Editor-CoreUObject.dll!UProperty::ExportText_Direct(FString & ValueStr, const void * Data, const void * Delta, UObject * Parent, int PortFlags, UObject * ExportRootScope) Line 732 C++
 [Inline Frame] UE4Editor-UnrealEd.dll!UProperty::ExportText_InContainer(int Data, FString & Delta, const void * Parent, const void *) Line 334 C++
 UE4Editor-UnrealEd.dll!FKismetDebugUtilities::GetWatchText(FString & OutWatchText, UBlueprint * Blueprint, UObject * ActiveObject, const UEdGraphPin * WatchPin) Line 1130 C++
 UE4Editor-BlueprintGraph.dll!UK2Node::GetPinHoverText(const UEdGraphPin & Pin, FString & HoverTextOut) Line 1802 C++
 UE4Editor-GraphEditor.dll!SGraphPin::GetTooltipText() Line 1131 C++
 [Inline Frame] UE4Editor-GraphEditor.dll!TMemberFunctionCaller<SGraphPin,FText (__cdecl SGraphPin::*)(void)const >::operator()() Line 156 C++
 [Inline Frame] UE4Editor-GraphEditor.dll!UE4Tuple_Private::TTupleImpl<TIntegerSequence<unsigned int> >::ApplyAfter(TMemberFunctionCaller<SGraphPin,FText (__cdecl SGraphPin::*)(void)const > &&) Line 285 C++
 UE4Editor-GraphEditor.dll!TBaseSPMethodDelegateInstance<1,SGraphPin,0,FText __cdecl(void)>::Execute() Line 293 C++
 [Inline Frame] UE4Editor-Slate.dll!TBaseDelegate<FText>::Execute() Line 586 C++
 UE4Editor-Slate.dll!TAttribute<FText>::Get() Line 137 C++
 UE4Editor-Slate.dll!SToolTip::IsEmpty() Line 87 C++
 UE4Editor-Slate.dll!FSlateUser::UpdateTooltip(const FMenuStack & MenuStack, bool bCanSpawnNewTooltip) Line 1095 C++
 UE4Editor-Slate.dll!FSlateApplication::ProcessMouseMoveEvent(const FPointerEvent & MouseEvent, bool bIsSynthetic) Line 5351 C++
 UE4Editor-Slate.dll!FSlateApplication::OnMouseMove() Line 5298 C++
 UE4Editor-ApplicationCore.dll!FWindowsApplication::ProcessDeferredMessage(const FDeferredWindowsMessage & DeferredMessage) Line 1996 C++
 UE4Editor-ApplicationCore.dll!FWindowsApplication::DeferMessage(TSharedPtr<FWindowsWindow,0> & NativeWindow, HWND__ * InHWnd, unsigned int InMessage, unsigned __int64 InWParam, __int64 InLParam, int MouseX, int MouseY, unsigned int RawInputFlags) Line 2410 C++
 UE4Editor-ApplicationCore.dll!FWindowsApplication::ProcessMessage(HWND__ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 1638 C++
 UE4Editor-ApplicationCore.dll!FWindowsApplication::AppWndProc(HWND__ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 789 C++
 [External Code] 
 UE4Editor-ApplicationCore.dll!FWindowsApplication::PumpMessages(const float TimeDelta) Line 2422 C++
 UE4Editor-Slate.dll!FSlateApplication::TickPlatform(float DeltaTime) Line 1367 C++
 UE4Editor-Slate.dll!FSlateApplication::Tick(ESlateTickType TickType) Line 1350 C++
 UE4Editor-Slate.dll!FSlateApplication::EnterDebuggingMode() Line 3287 C++
 UE4Editor-UnrealEd.dll!FKismetDebugUtilities::AttemptToBreakExecution(UBlueprint * BlueprintObj, const UObject * ActiveObject, const FFrame & StackFrame, const FBlueprintExceptionInfo & Info, UEdGraphNode * NodeStoppedAt, int DebugOpcodeOffset) Line 722 C++
 UE4Editor-UnrealEd.dll!FKismetDebugUtilities::OnScriptException(const UObject * ActiveObject, const FFrame & StackFrame, const FBlueprintExceptionInfo & Info) Line 352 C++
 [Inline Frame] UE4Editor-UnrealEd.dll!UE4Tuple_Private::TTupleImpl<TIntegerSequence<unsigned int> >::ApplyAfter(void(*)(const UObject *, const FFrame &, const FBlueprintExceptionInfo &) &) Line 285 C++
 [Inline Frame] UE4Editor-UnrealEd.dll!TBaseStaticDelegateInstance<TTypeWrapper<void> __cdecl(UObject const *,FFrame const &,FBlueprintExceptionInfo const &)>::Execute(const UObject *) Line 801 C++
 UE4Editor-UnrealEd.dll!TBaseStaticDelegateInstance<void __cdecl(UObject const *,FFrame const &,FBlueprintExceptionInfo const &)>::ExecuteIfSafe(const UObject * <Params_0>, const FFrame & <Params_1>, const FBlueprintExceptionInfo & <Params_2>) Line 854 C++
 [Inline Frame] UE4Editor-CoreUObject.dll!TBaseMulticastDelegate<void,UObject const *,FFrame const &,FBlueprintExceptionInfo const &>::Broadcast(const UObject *) Line 1013 C++
 UE4Editor-CoreUObject.dll!FBlueprintCoreDelegates::ThrowScriptException(const UObject * ActiveObject, const FFrame & StackFrame, const FBlueprintExceptionInfo & Info) Line 184 C++
 UE4Editor-CoreUObject.dll!UObject::execTracepoint(UObject * Context, FFrame & Stack, void * const Z_Param__Result) Line 2203 C++
 [Inline Frame] UE4Editor-CoreUObject.dll!FFrame::Step(UObject *) Line 338 C++
 UE4Editor-CoreUObject.dll!ProcessLocalScriptFunction(UObject * Context, FFrame & Stack, void * const Z_Param__Result) Line 997 C++
 UE4Editor-CoreUObject.dll!ProcessScriptFunction<void (__cdecl*)(UObject *,FFrame &,void *)>(UObject * Context, UFunction * Function, FFrame & Stack, void * const Z_Param__Result, void(*)(UObject *, FFrame &, void *) ExecFtor) Line 828 C++
 UE4Editor-CoreUObject.dll!ProcessLocalFunction(UObject * Context, UFunction * Fn, FFrame & Stack, void * const Z_Param__Result) Line 1056 C++
 [Inline Frame] UE4Editor-CoreUObject.dll!FFrame::Step(UObject *) Line 338 C++
 UE4Editor-CoreUObject.dll!ProcessLocalScriptFunction(UObject * Context, FFrame & Stack, void * const Z_Param__Result) Line 997 C++
 UE4Editor-CoreUObject.dll!ProcessScriptFunction<void (__cdecl*)(UObject *,FFrame &,void *)>(UObject * Context, UFunction * Function, FFrame & Stack, void * const Z_Param__Result, void(*)(UObject *, FFrame &, void *) ExecFtor) Line 828 C++
 UE4Editor-CoreUObject.dll!ProcessLocalFunction(UObject * Context, UFunction * Fn, FFrame & Stack, void * const Z_Param__Result) Line 1056 C++
 [Inline Frame] UE4Editor-CoreUObject.dll!FFrame::Step(UObject *) Line 338 C++
 UE4Editor-CoreUObject.dll!ProcessLocalScriptFunction(UObject * Context, FFrame & Stack, void * const Z_Param__Result) Line 997 C++
 UE4Editor-CoreUObject.dll!UObject::ProcessInternal(UObject * Context, FFrame & Stack, void * const Z_Param__Result) Line 1081 C++
 UE4Editor-CoreUObject.dll!UFunction::Invoke(UObject * Obj, FFrame & Stack, void * const Z_Param__Result) Line 4907 C++
 UE4Editor-CoreUObject.dll!UObject::ProcessEvent(UFunction * Function, void * Parms) Line 1912 C++
 UE4Editor-UMG.dll!UUserWidget::NativeConstruct() Line 1465 C++
 UE4Editor-UMG.dll!UWidget::TakeWidget_Private(TFunctionRef<TSharedPtr<SObjectWidget,0> __cdecl(UUserWidget *,TSharedRef<SWidget,0>)> ConstructMethod) Line 858 C++
 UE4Editor-UMG.dll!UWidget::TakeWidget() Line 775 C++
 UE4Editor-UMG.dll!UUserWidget::AddToScreen(ULocalPlayer * Player, int ZOrder) Line 1079 C++
 [Inline Frame] UE4Editor-UMG.dll!UUserWidget::AddToViewport(int) Line 1048 C++
 UE4Editor-UMG.dll!UUserWidget::execAddToViewport(UObject * Context, FFrame & Stack, void * const Z_Param__Result) Line 204 C++
 UE4Editor-CoreUObject.dll!UFunction::Invoke(UObject * Obj, FFrame & Stack, void * const Z_Param__Result) Line 4907 C++
 UE4Editor-CoreUObject.dll!UObject::CallFunction(FFrame & Stack, void * const Z_Param__Result, UFunction * Function) Line 927 C++
 [Inline Frame] UE4Editor-CoreUObject.dll!FFrame::Step(UObject *) Line 338 C++
 UE4Editor-CoreUObject.dll!UObject::ProcessContextOpcode(FFrame & Stack, void * const Z_Param__Result, bool bCanFailSilently) Line 2792 C++
 [Inline Frame] UE4Editor-CoreUObject.dll!FFrame::Step(UObject *) Line 338 C++
 UE4Editor-CoreUObject.dll!ProcessLocalScriptFunction(UObject * Context, FFrame & Stack, void * const Z_Param__Result) Line 997 C++
 UE4Editor-CoreUObject.dll!ProcessScriptFunction<void (__cdecl*)(UObject *,FFrame &,void *)>(UObject * Context, UFunction * Function, FFrame & Stack, void * const Z_Param__Result, void(*)(UObject *, FFrame &, void *) ExecFtor) Line 828 C++
 UE4Editor-CoreUObject.dll!ProcessLocalFunction(UObject * Context, UFunction * Fn, FFrame & Stack, void * const Z_Param__Result) Line 1056 C++
 [Inline Frame] UE4Editor-CoreUObject.dll!FFrame::Step(UObject *) Line 338 C++
 UE4Editor-CoreUObject.dll!ProcessLocalScriptFunction(UObject * Context, FFrame & Stack, void * const Z_Param__Result) Line 997 C++
 UE4Editor-CoreUObject.dll!UObject::ProcessInternal(UObject * Context, FFrame & Stack, void * const Z_Param__Result) Line 1081 C++
 UE4Editor-CoreUObject.dll!UFunction::Invoke(UObject * Obj, FFrame & Stack, void * const Z_Param__Result) Line 4907 C++
 UE4Editor-CoreUObject.dll!UObject::ProcessEvent(UFunction * Function, void * Parms) Line 1912 C++
 UE4Editor-Engine.dll!AActor::ProcessEvent(UFunction * Function, void * Parameters) Line 795 C++
 UE4Editor-Engine.dll!AActor::BeginPlay() Line 3468 C++
 UE4Editor-Engine.dll!AActor::DispatchBeginPlay(bool bFromLevelStreaming) Line 3384 C++
 UE4Editor-Engine.dll!AWorldSettings::NotifyBeginPlay() Line 246 C++
 UE4Editor-Engine.dll!AGameStateBase::HandleBeginPlay() Line 179 C++
 UE4Editor-Engine.dll!UWorld::BeginPlay() Line 4113 C++
 UE4Editor-Engine.dll!UGameInstance::StartPlayInEditorGameInstance(ULocalPlayer * LocalPlayer, const FGameInstancePIEParameters & Params) Line 433 C++
 UE4Editor-UnrealEd.dll!UEditorEngine::CreatePIEGameInstance(int InPIEInstance, bool bInSimulateInEditor, bool bAnyBlueprintErrors, bool bStartInSpectatorMode, bool bRunAsDedicated, bool bPlayStereoscopic, float PIEStartTime) Line 3570 C++
 UE4Editor-UnrealEd.dll!UEditorEngine::PlayInEditor(UWorld * InWorld, bool bInSimulateInEditor, FPlayInEditorOverrides Overrides) Line 2613 C++
 UE4Editor-UnrealEd.dll!UEditorEngine::StartQueuedPlayMapRequest() Line 1303 C++
 UE4Editor-UnrealEd.dll!UEditorEngine::Tick(float DeltaSeconds, bool bIdleMode) Line 1600 C++
 UE4Editor-UnrealEd.dll!UUnrealEdEngine::Tick(float DeltaSeconds, bool bIdleMode) Line 410 C++
 UE4Editor.exe!FEngineLoop::Tick() Line 4485 C++
 [Inline Frame] UE4Editor.exe!EngineTick() Line 62 C++
 UE4Editor.exe!GuardedMain(const wchar_t * CmdLine, HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, int nCmdShow) Line 173 C++
 UE4Editor.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow) Line 252 C++
 [External Code]

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-87307 in the post.

3
Login to Vote

Fixed
ComponentUE - Gameplay - Blueprint
Affects Versions4.24.1
Target Fix5.0
Fix Commit14262559
Release Commit14262559
CreatedJan 22, 2020
ResolvedJul 26, 2021
UpdatedNov 12, 2021