大纲
- 背景交代
- 什么是
crash dump files
- 分析
dump
文件的方法 - 其他工具
背景交代
本来按照顺序,这一章应该是讲blueprint
或者UserWidget
的,但是在学习的过程中,UE
直接闪退,连一丢丢提示都没有;那以后真的在项目中出现这样的情况,想找原因,岂不是非常坑!所有需要一些方法来分析为什么闪退!
在UE
工程中有一个Saved
目录,大致的目录内容如下:
其中有两个很明显是可以用来分析crash
原因的文件夹:Crashes
和Logs
;
首先是看看Logs
下有没有我们需要的看的文件信息:
这里就以2021-05-26 15:47
的那次闪退日志去分析!打开该日志看看有没有我们需要看到的信息;
从头看到结尾,都没有发现很明显的闪退关键信息!到这里,就只能去看看Crashes
文件夹下有没有我们想要的文件了!
在Crashes
目录下,我们看到一个时间相差不大的Crash
目录!!
在该Crash
目录下,看到了里面的内容,其中有一个 故障转储文件 ( crash dump files )
看都这个,瞬间就舒了一口气!
什么是Crash dump files
Crash dump files
的中文翻译是故障转储文件
;(在微软的文档中英文对比是这样的)
系统崩溃 (错误检查
或停止错误
) 运行Windows
错误时发生。 此事件生成的转储文件称为系统故障转储!
分析dump
文件的方法
因为是UE
的Crash dump file
所以这里就直接是以visual studio
作为工具说明了!
基本步骤有一下:
- WDK的安装
- 解释和查看
WDK的安装
我使用的Visual studio 2019 企业版
;
勾选下载Windows 10 SDK (10.0.19041.0)
(maybe有更新的版本,自行定义就好!)
等待下载安装重启后!
我们就能对上文中提到的UE4Minidump.dmp
文件直接双击打开了!
直接打开后,看到基本还是一脸懵逼,但是至少有一个关键信息
但是这些根本就不足以让我们明确异常的位置呀!如果对gdb
之类的比较熟悉的同学就会想到符号表
!
点击右侧的设置符号路径
,在弹出来的对话框里选中UE
项目的Binaries\Win64
目录;这样在处理解释的时候就能加载指定的符号表了!
执行运行后,如果中途有缺少符号表的,就会有一下提示
但是基本不会影响我们看堆栈!
我们选择一下主线程
UE
是开源的,到这里我们就基本能判定是怎么回事了!
其他工具
windows官方也提供了一个WinDbg
的分析工具!这里就只有简单的说一下,其他的就要自行去学习了!
在Microsoft store
中下载WinDbg Preview
然后就是上文说到的WDK
这里就不在说明!
启动WinDbg
后,通过菜单打开Crash dump file
或者直接将Crash dump file
拖动到窗口内都可以。
打开后,能看到以下的界面
在这个界面里,我们可以使用相应的指令进行操作!
eg: