EpicSkookumScript / EpicSkookumScript/SkookumScript-Plugin

Assertion failed: !Obj->HasAnyFlags(RF_NeedLoad|RF_NeedPostLoad|RF_ClassDefaultObject) || bIsOwnedByCDO

未关闭
#32 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
bug
主要语言
C++
星标
138
派生
22
PR 合并指标
30 天内没有已合并 PR

描述

**UE4 Version**
4.18-Current

**SkookumScript Version**
4.18-Current

**Describe the bug**
Once the bug hits, you will get this stack trace when starting the editor.

```
0x00000000676E47F9 UE4Editor-Core.dll!FDebug::AssertFailed() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:414]
0x000000006BEBE73A UE4Editor-CoreUObject.dll!StaticAllocateObject() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:2365]
0x000000006BEC0191 UE4Editor-CoreUObject.dll!StaticConstructObject_Internal() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:3145]
0x000000004BCDAE3A UE4Editor-SkookumScriptRuntime.dll!SkUEReflectionManager::add_instance_property_to_class() [d:\build\++portal+dev-marketplace+full\sync\localbuilds\plugintemp\hostproject\plugins\skookumscript\source\skookumscriptruntime\private\bindings\skuereflectionmanager.cpp:788]
0x000000004BE4DFA6 UE4Editor-SkookumScriptRuntime.dll!SkUEReflectionManager::sync_all_to_ue() [d:\build\++portal+dev-marketplace+full\sync\localbuilds\plugintemp\hostproject\plugins\skookumscript\source\skookumscriptruntime\private\bindings\skuereflectionmanager.cpp:723]
0x000000004BCCF8EF UE4Editor-SkookumScriptRuntime.dll!FSkookumScriptRuntime::OnPreCompile() [d:\build\++portal+dev-marketplace+full\sync\localbuilds\plugintemp\hostproject\plugins\skookumscript\source\skookumscriptruntime\private\skookumscriptruntime.cpp:1466]
0x000000004BCC97D6 UE4Editor-SkookumScriptRuntime.dll!TBaseRawMethodDelegateInstance<0,FSkookumScriptRuntime,void __cdecl(void)>::ExecuteIfSafe() [d:\rocketsync\4.18.0-3709383+++ue4+release-4.18\working\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:648]
```

**To Reproduce**
I still have not been able to nail down specific reproduction steps as this is one of those bugs that goes away as soon as you try to debug it. The times when this has happened, I was doing a workflow where I was adding/deleting an sk constructor by moving files into and out of the scripts folder and then reloading my project. This may or may not be a factor.

贡献指南

打开贡献指南

调研方向

从 skuereflectionmanager.cpp:788 的 SkUEReflectionManager::add_instance_property_to_class() 开始,然后追踪报告行中的 sync_all_to_ue() 和 FSkookumScriptRuntime::OnPreCompile()。调查涉及新增或删除 Skookum 构造函数的编辑器启动和脚本重新加载工作流;完成的标准是 RF_NeedLoad/RF_NeedPostLoad/RF_ClassDefaultObject assertion 不再发生,并且有一个可复现的回归案例。

由索引模型根据 Issue 内容生成。

评估

技术栈
cpp, unreal-engine
领域
game-dev
Issue 类型
缺陷
难度
4/5
预计耗时
3-5 天
活跃度
停滞
描述清晰度
需要澄清
新手友好度
25/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。