Unreal Editor のクラッシュによるコールスタックが表示されない
概要
ここでは、Unreal Editor の使用中にクラッシュが発生し、クラッシュレポーターにコールスタックが表示されない場合の解決策を見ていきます。完全なコールスタックを表示する代わりに、クラッシュレポーターは UE4Editor_CoreObject という多数の行を表示します。
このクラッシュが BlackBox サーバーに送信されると、PDB シンボルファイルがないためにまだ完全なデバッグ情報を取得できず、スタックトレースは次のようになります。
ここで欠けているのは Unreal Editor 自体の全デバッグ情報であり、Unreal Editor 内でのクラッシュ時にスタックトレースを構築するには、それが必要となります。
これは簡単に見つけることができます。必要なのは Unreal Editor で正しく設定を行うことだけです。それでは、この問題を解決していきましょう。
手順
Unreal Editor バイナリ自体の中に Unreal Editor PDB シンボルファイルがあることを確認しましょう。これを最も簡単に行う方法は、Epic Launcher を使用することです。まずはこのツールを見てみましょう。
Epic Launcher から Unreal Engine をダウンロードする
Epic Launcher から Unreal Engine を使用している場合は、コールスタックを解析するために必要な PDB シンボルファイルをダウンロードできます。
[Unreal Engine]メニューで、[Library (ライブラリ)]タブを選択します。ここには、ローカルマシンにインストールされている Unreal Engine バージョンが表示されます。
[Launch (起動)]ボタンの横にあるドロップダウンの矢印をクリックし、[Options (オプション)]メニューを選択します。
[Editor Symbols for Debugging (デバッグ用のエディタシンボル)]オプションをクリックします。
[Apply (適用)]をクリックします。 PDB シンボルファイルが大きい場合にはダウンロードに時間がかかることがありますが、これを行うのは一度だけです。
GitHub から Unreal Engine をダウンロードする
GitHub の Unreal Engine を使用している場合に必要なのは、Unreal Engine をコンパイルして新しい PDB シンボルファイルを生成することだけです。
ただし、Unreal Editor を使用している間に同じエラーが発生した場合は、ローカルマシンで Unreal Editor を再コンパイルしてください。コラボレーションリポジトリで作業するときに、誰かが Unreal Editor 実行可能ファイルをコミットしながらも、PDB シンボルファイルを除外していることがあります。
これで完了です。今後 Unreal Editor においてクラッシュが発生した際に、コールスタックを取得できるようになりました。