LoginSignup
4
4

More than 3 years have passed since last update.

UnrealBuildToolをデバッグしてみる

Last updated at Posted at 2020-11-02

UnrealBuildTool(UBT)はエンジンやプロジェクトのc++ネイティブコードをビルドするためのツールです。
難しいことを考えずにビルドをするだけで必要な処理を解析して勝手に起動に必要なバイナリを作成してくれる便利なツールですが、
開発していると稀にUBTの動作が意図通りに行われないことに遭遇しデバッグしたくなることがあります。

本記事ではUBTのデバッグ方法について解説します。

なお UE4.25.3 + VisualStudio2019 の環境に基づいて書かれています。

ビルド時に渡されているオプションを調べる

まずUBTを起動させるときに対象となるプロジェクトを指定しなければなりません。

基本的には -target=[ターゲット名(プロジェクト名+Editor)] Win64 Development -Project="プロジェクトファイルのパス" となります。

-Target="SimpleLoadingScreenEditor Win64 Development -Project=\"D:\dev\UE425projects\SimpleLoadingScreen\SimpleLoadingScreen.uproject\"" -Target="ShaderCompileWorker Win64 Development -Quiet" -WaitMutex -FromMsBuild -verbose

上手く行かない場合は-verboseログを有効にしてビルドするとログから確認できます。
-verboseオプションについてはこちらの記事をご確認ください → https://qiita.com/EGJ-Takashi_Suzuki/items/b2134bee42afaf2db766

image.png

ソリューションの設定と起動

まずソリューション中のUnrealBuildToolを選択して Set as startup project を選択します。

image.png

次に、UnrealBuildToolプロジェクトのプロパティを開き、「Debug」カテゴリの CommandLineArguments に調べておいたオプションを記述します。
image.png

これで準備完了です。
あとはStepInto(F11)でプログラムの先頭から実行するか、
BuildMode.csのBuild関数や、問題の個所がわかっていればそちらにブレイクポイントを張ってからRun(F5)でデバッグを開始できます。

おまけ

対象のヘッダファイルにUHTが起動される判定

Intermediate\Build\Win64\プロジェクト名\Inc\モジュール名\timestamp
ヘッダのタイムスタンプを比較している

ソースファイルに対して依存関係のあるファイルの確認

Intermediate\Build\Win64\UE4Editor\Development\YourProjectName\YourSourceFile.cpp.txt のようなファイルに
cl-filter.exeを通じて得られた依存関係のあるファイルが出力されている

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4