お世話になっております。
DebugEditorではクラッシュが発生せずdmpが生成されませんので、一旦ブレイクでの調査結果をお伝えいたします。
▽nullptrの原因と思われる箇所
・GUObjectArray.IsValid(ObjectItem, bEvenIfPendingKill))がfalseで返っているためと思われる
・ObjectItem及びObjectItem->ObjectにはUUserWidget継承したウィジェットが入っておりbEvenIfPendingKillはfalseのため、上記以外でのnullptr返却の可能性が見当たりませんでした。
・GUObjectArray.IsValid(ObjectItem, bEvenIfPendingKill))内部にはブレイクを貼っても入ることができず、特定できておりません。
WeakObjectPtr.cpp:235
/** Private (inlined) version for internal use only. */
FORCEINLINE_DEBUGGABLE UObject* Internal_Get(bool bEvenIfPendingKill) const
{
FUObjectItem* const ObjectItem = Internal_GetObjectItem();
return ((ObjectItem != nullptr) && GUObjectArray.IsValid(ObjectItem, bEvenIfPendingKill)) ? (UObject*)ObjectItem->Object : nullptr;
}
▽クラッシュまでの流れ
CastLogError(const wchar_t *,const wchar_t *) Casts.cpp:11
CastChecked<UUserWidget,UObject>(UObject *) Casts.h:256
Internal_Get(bool bEvenIfPendingKill) const WeakObjectPtr.cpp:235
FWeakObjectPtr::Get(/*bool bEvenIfPendingKill = false*/) const WeakObjectPtr.cpp:81
UUMGSequencePlayer::GetPlaybackContext() const UMGSequencePlayer.cpp:372
UWidgetAnimation::CreateDirectorInstance(IMovieScenePlayer &,FMovieSceneSequenceID) WidgetAnimation.cpp:258
▽補足
・タイミングとしてはレベル遷移時ですが、他のフォーカスウィジェット等ではUUMGSequencePlayer::GetPlaybackContext(UserWidget.Get();)でのnullptr返却はありませんでした。
dmpについて確認を行っておりますので、少々お待ち下さい。
dmpが生成されない原因としては、CastLogErrorにてUE_LOG(LogCasts, Fatal, TEXT(“Cast of %s to %s failed”), FromType, ToType);がありますがDebugEditorではクラッシュせず、
void FWindowsErrorOutputDevice::Serialize( const TCHAR* Msg, ELogVerbosity::Type Verbosity, const class FName& Category )でのFPlatformMisc::RequestExit( true );にて終了しているためのようでした。
[Attachment Removed]