网易首页 > 网易号 > 正文 申请入驻

如何读懂UE崩溃报告

0
分享至

“ 感知技术 · 感触CG · 感受艺术 · 感悟心灵 ”

中国很有影响力影视特效CG动画领域自媒体

当你的游戏崩溃时,虚幻引擎会创建崩溃报告,它可以将报告发送到崩溃报告客户端(Crash Report Client)。崩溃报告客户端是一个应用程序,可提示用户提供注释(可选)并向Epic Games提交崩溃报告。你可以自定义随你的游戏打包的崩溃报告客户端,将崩溃报告数据发送到你自己的服务器,以帮助调试游戏。

本指南提供了:

  • 崩溃报告及其内容的概述。

  • 有关在本地计算机上何处查找崩溃报告的信息。

  • 崩溃报告的配置变量参考和项目设置。

  • 如何为你自己的打包应用程序修改和配置崩溃报告器客户端。

  • 崩溃报告服务推荐,你可以用它接收远程服务器上的崩溃报告。


崩溃报告

崩溃报告包含:

  • 一个唯一的随机崩溃标识符,即崩溃guid

  • 有关错误的信息,例如类型(崩溃、断言、确保等),或崩溃线程和其他所有线程的调用堆栈。

  • 计算机的系统信息和应用程序上下文信息,例如构建配置。

  • 崩溃时的日志输出。这可以是设备运行时日志或项目编辑器日志。

  • 游戏使用键/值对提供的额外上下文。

  • 用户通过崩溃报告客户端提供的额外注释。

下面是在崩溃报告客户端中查看崩溃报告的示例:

在哪里查找本地崩溃报告

来自编辑器的崩溃报告存储在你的本地计算机上你的项目的Saved/Crashes文件夹中。

你也可以在用户本地计算机上的C:\Users[Your Windows Username]\AppData\Local[Project Name]\Saved\Crashes中找到崩溃报告。

虚幻引擎中的常见崩溃原因

以下是出现崩溃报告的最常见原因。这些原因都会启动崩溃报告器客户端,并在调用堆栈上方随附消息,详述遇到的崩溃类型。

崩溃源:崩溃(Crash)

说明:发生了程序无法处理的事情,因此程序关闭。发生崩溃的原因包括:

  • 访问空对象。

  • 尝试将数据写入不存在的对象。

  • 访问的对象或数据已损坏。

  • 堆栈溢出,通常是由于无限循环或无限递归。

  • 内存不足(OOM)错误。

示例图像

崩溃源:断言(Assert)

说明:开发人员故意在代码中放入断言语句,使程序在特定条件下崩溃。这可以验证你关于某些内容在之后的运行期间可能会导致问题的预想,以便及早发现。例如:

check(Mesh != nullptr)

如需详细了解虚幻引擎中的断言,请参阅关于断言的文档页面:

https://docs.unrealengine.com/5.3/zh-CN/asserts-in-unreal-engine/

示例图像

崩溃源:确保(Ensure)

说明: "确保"会检查特定条件,但不会在解决false后崩溃。相反,它们会向输出日志生成消息,并在无人照管模式下向崩溃报告器发送报告。这可以用于你想监控的事项,但不一定是崩溃执行。例如:

ensure(Number >= 0)

如需详细了解虚幻引擎中的确保,请参阅关于断言的文档页面:

https://docs.unrealengine.com/5.3/zh-CN/asserts-in-unreal-engine/

示例图像

警告:"确保"仅用作开发工具,在测试和发布构建配置中通常会禁用。我们建议你始终使用发布配置将游戏发布给最终消费者。如果你没有修改崩溃报告器客户端,发行开发或调试版本可能导致你的用户发送无人照管的崩溃报告给Epic Games。

将自定义上下文添加到崩溃报告

除了添加到崩溃报告的标准信息之外,游戏项目还可以添加自己的自定义上下文,即游戏数据。这可以是关于游戏模式、玩家在世界中的位置信息,或对于调查漏洞至关重要的其他游戏状态信息。这些数据使用键/值对和FPlatformCrashContext::SetGameData函数添加。

请注意,自定义上下文设置在发生错误之前。收集崩溃报告时,会捕获游戏数据值的当前状态并写入报告。

例如,每当你的游戏进入新游戏模式时,调用:

在该游戏模式期间发生的崩溃将包含以下XMLdata:

崩溃报告器基础设施

UE的崩溃报告基础设施包括以下组件:

1. 用户计算机上的崩溃报告客户端,随编辑器或你的游戏版本一起发行。崩溃报告客户端会将崩溃转储信息发送给你的终端。

2. 带有能管理、筛选和存储崩溃报告的应用程序和组件的服务器

下面各小节详述了其中每个组件,以及如何为你自己的组织设置它们。


崩溃报告器客户端

崩溃报告器客户端是一个单独程序,可用于编辑器版本,也可选择与用户计算机上的运行时版本打包使用。编辑器或打包的应用程序崩溃时,引擎会生成崩溃报告,然后启动崩溃报告器客户端(如果可用)。如果崩溃报告器不处于无人照管模式,它会显示带有崩溃数据的窗口,并提示用户发送或不发送报告。

将崩溃报告器客户端打包进你的游戏

默认情况下,打包的游戏中不含崩溃报告器客户端。要将其添加到你的打包版本中,请执行以下操作:

1. 在虚幻编辑器中,打开项目设置(Project Settings)并找到项目(Project)>打包(Packaging)

2. 展开高级(Advanced)下拉菜单。

3. 启用包含崩溃报告器(Include Crash Reporter)设置。

你也可以将IncludeCrashReporter=True添加到你的项目的Config/DefaultGame.ini 文件。

配置自动崩溃报告

以下配置变量决定了崩溃报告器是否应该自动将崩溃报告发送给服务器。你可以在[CrashReportClient]目录下的任意Engine.ini文件中进行此类配置。

警告:在UE 5.3.2及更早版本中,由于存在漏洞,bSendUnattendedCrashReports不能在打包了崩溃报告器的运行时版本上正确运行。设置为false时,崩溃报告器仍会自动将关于"确保"的报告发送给Epic Games。此问题将在UE 5.4中修复。

配置崩溃报告器客户端

你可以自定义崩溃报告器客户端,将崩溃事件发送给你选择的服务器。要自定义崩溃报告器,请执行以下操作:

1. 打开你的虚幻引擎安装目录。

2. 找到Engine/Programs/CrashReportClient/Config

3. 打开DefaultEngine.ini文件。

该配置文件包含了用于配置崩溃报告器的所有变量。

更改要将崩溃报告发送到的URL

要将崩溃报告发送给你自己的组织,请将DataRouterURL变量更改为你自己的崩溃报告服务器的URL。请参阅下面的崩溃报告服务器一节,详细了解如何设置此终端。


配置变量参考

崩溃报告器客户端的配置变量如下所示:

编辑器版本始终包含崩溃报告客户端,但你可以选择是否将其包含在打包版本中。


崩溃报告服务器

要充分利用崩溃报告器,你需要设置服务器来接收远程用户的崩溃报告并将其符号化。UE不包括带有源代码或二进制文件的此类组件。但是,将源代码用于崩溃报告客户端,你就可以开始创建自己的自定义解决方案。此外,也有一些第三方崩溃报告服务可供你部署。

以下是UE社区中常用的崩溃报告服务。每一类服务都有相关文档,说明了如何将其与UE的崩溃报告器集成:

崩溃报告服务:Backtrace

https://backtrace.io

UE文档链接

https://docs.saucelabs.com/error-reporting/platform-integrations/unreal/setup/

崩溃报告服务:Bugsplat

https://www.bugsplat.com

UE文档链接

https://docs.bugsplat.com/introduction/getting-started/integrations/game-development/unreal-engine/

崩溃报告服务:Sentry

https://sentry.io/welcome/

UE文档链接

https://docs.sentry.io/platforms/unreal/configuration/setup-crashreporter/

全文完

秀!八年级14岁少年用Blender做的

浅谈UE新材质系统Substrate

爱上了大神作品中的男女主角

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
网友:一家拿走22万?这真是太豪横了!刘强东又回村发钱了…

网友:一家拿走22万?这真是太豪横了!刘强东又回村发钱了…

火山诗话
2025-01-08 16:10:20
拔出萝卜带出泥!32岁飞行员失踪风波升级,3大巧合越扒越心惊

拔出萝卜带出泥!32岁飞行员失踪风波升级,3大巧合越扒越心惊

火之文
2025-01-01 13:30:03
网友:广东猎德村分红通知来了,有村民说分了19股,每股5.2万多

网友:广东猎德村分红通知来了,有村民说分了19股,每股5.2万多

火山诗话
2025-01-07 12:11:39
多项数据联盟第一!从倒数第二,升至西部第二,超级黑马打回来了

多项数据联盟第一!从倒数第二,升至西部第二,超级黑马打回来了

小彭美识
2025-01-08 07:30:23
王星暂停回国后续!和女友同在泰国不能见,无出境记录或涉嫌犯罪

王星暂停回国后续!和女友同在泰国不能见,无出境记录或涉嫌犯罪

小盖纪实
2025-01-08 13:55:48
家庭托举的力量有多重要?网友:月薪2万,比不上父母托举的4千

家庭托举的力量有多重要?网友:月薪2万,比不上父母托举的4千

娱乐洞察点点
2025-01-08 03:14:12
财政部:中央财政已预下达2025年消费品以旧换新资金810亿元 支持各地做好政策持续实施的衔接工作

财政部:中央财政已预下达2025年消费品以旧换新资金810亿元 支持各地做好政策持续实施的衔接工作

财联社
2025-01-08 10:54:10
国内选调开始拒绝留学生,释放的信号不简单……

国内选调开始拒绝留学生,释放的信号不简单……

大道微言
2025-01-07 15:46:03
重庆一火锅店售上千张团购券后跑路?消费者、员工、供应商急维权

重庆一火锅店售上千张团购券后跑路?消费者、员工、供应商急维权

红餐网
2025-01-08 17:42:16
全球罕见:前世活到今世出生三个月后,才来投胎,真实经历

全球罕见:前世活到今世出生三个月后,才来投胎,真实经历

神奇故事
2025-01-08 23:53:10
不出意外,未来三年,50%的家庭,将面临四大难题

不出意外,未来三年,50%的家庭,将面临四大难题

巢客HOME
2025-01-04 11:35:02
知名信托被曝“踩雷”了

知名信托被曝“踩雷”了

密探财经
2025-01-08 15:26:13
缅北女魔头维嘉琳!最残酷的手段是割“小乳猪”,受害者多为男性

缅北女魔头维嘉琳!最残酷的手段是割“小乳猪”,受害者多为男性

马尔科故事会
2024-09-04 09:39:57
两大迹象表明,台海战争可能会爆发!美国可不要犯历史错误!

两大迹象表明,台海战争可能会爆发!美国可不要犯历史错误!

飞杨电影
2025-01-02 01:45:11
终于知道芬兰自杀率高的原因了!网友的剖析一针见血,容易抑郁

终于知道芬兰自杀率高的原因了!网友的剖析一针见血,容易抑郁

美好客栈大掌柜
2025-01-05 00:20:03
重回杜锋门下,36岁周鹏做出选择,发声决定,娇妻支持

重回杜锋门下,36岁周鹏做出选择,发声决定,娇妻支持

东球弟
2025-01-08 15:23:02
二叔被免职后,迷上了钓鱼,有一天他官复原职

二叔被免职后,迷上了钓鱼,有一天他官复原职

乔生桂
2025-01-03 19:07:57
3个月0成交!南京一批小区,陷入流动性危机

3个月0成交!南京一批小区,陷入流动性危机

石辰搞笑日常
2025-01-09 00:38:21
直降500元,华为Mate70支持国补15%,网友们都炸了!

直降500元,华为Mate70支持国补15%,网友们都炸了!

小柱解说游戏
2025-01-09 03:37:22
车祸瘫痪后,被妻子扔养老院22年,昔日的“歌王”如今怎么样了?

车祸瘫痪后,被妻子扔养老院22年,昔日的“歌王”如今怎么样了?

祝晓塬
2025-01-08 18:02:10
2025-01-09 04:59:00
CG世界 incentive-icons
CG世界
分享国内外优秀CG作品,教程
5218文章数 8504关注度
往期回顾 全部

科技要闻

李开复第一个讲了出来,不再追求 AGI

头条要闻

38岁群演曾被骗至缅甸家属花百万救回:诈骗手段已升级

头条要闻

38岁群演曾被骗至缅甸家属花百万救回:诈骗手段已升级

体育要闻

消失3年后,国乒冠军成为一名大学老师

娱乐要闻

星星女友传来好消息:已和星星见面

财经要闻

2025年,年轻人的抠门远远不止反向消费

汽车要闻

10万元级无图智驾 悦也PLUS全路况实测

态度原创

旅游
时尚
本地
艺术
家居

旅游要闻

张家口一滑雪场游客坐缆车坠落,人已送医

这3套亮眼又高级的风格,真的很好穿!

本地新闻

韩国人来中国旅游,已经吃不了兜着走了

艺术要闻

故宫珍藏的墨迹《十七帖》,比拓本更精良,这才是地道的魏晋写法

家居要闻

诠释未来 置身星际之间

无障碍浏览 进入关怀版