UE4C++ 打包后 可执行文件 fatal error 无错误代码

问题描述

UE4C++。在UE4Editor中正常运行。打包成可执行文件后,运行中报错fatal error且无错误代码。VSDebug也无任何报错。

原因

仅针对我的情况。

空指针并未完成赋值时,对其解引用
在GameMode的BeginPlay中会对某空指针进行赋值,同时在UserWidget(在HUD的BeginPlay中被CreateWidget)的NativeConstruct中会对此指针解引用,先后顺序UB,因此fatal error

由于在UE4Editor中,GameMode是在Editor运行后打开Map的同时)开始构建,HUD是在游戏运行后才开始构建。因此,在UE4Editor中,对该空指针的赋值大多能在解引用之前完成,从而正常运行。

以上仅为推测,我对源码没有研究,仅供参考。

解决

优化架构、利用构造函数。处理好空指针赋值解引用的先后顺序。

说一句话

这个问题主要坑在无法在UE4Editor和VSDebug中发现,打包运行后才暴露且无错误提示,让人一时难以理解。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值