Skip to content

UUnluaManager 野指针访问导致crash #504

@DianxinWang

Description

@DianxinWang

打包之后的游戏在退出时,UUnLuaManager会先于UnLuaEnv释放并调用析构函数,导致UnLuaEnv所持有的Manager指针为野指针。而之后UnLuaEnv释放时,将调用Manager野指针的函数,并造成crash。

crash 堆栈
image
image

虽然原生代码中有对Manager进行AddToRoot 和RemoveFromRoot进行管理,但在打包游戏退出时(PIE和StandAloneGame未有该问题),UUnluaManager确实先于UnLuaEnv析构掉。这里本地尝试通过手动添加UnLuaManager析构函数,并分别于UnluaEnv和UnluaManager的析构函数上设置断点,进行验证。
image
image

修改建议:
可简单将UnLuaEnv析构函数中对Manager->CleanUp()的调用剔除。
亦或通过某种机制确保UnLuaManager后于UnLuaEnv析构。

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions