静的コード解析

Unreal Build Tool は、さまざまな静的コード アナライザーの実行をサポートしています。

Unreal Build Tool (UBT) は、いくつかの静的コード アナライザーの実行をサポートしています。静的コード アナライザー は、さまざまなアルゴリズムと技法を使用してソース コードを検査し、コードを実行せずにバグを見つけ出します。これにより、解析速度の向上、メモリ リークや論理エラーの早期検出、技術的な負担の軽減が実現します。

UBT で静的コード アナライザーを使用する

Unreal Engine のルート ディレクトリから UBT を使用して静的コード アナライザーを実行するための一般的なコマンドライン構文は次のとおりです。

Engine\Build\BatchFiles\RunUBT.bat TARGET PLATFORM Development -StaticAnalyzer=ANALYZER

上記のコマンドにある TARGETPLATFORM、および ANALYZER は必須の引数です。それらを目的の値に置き換える必要があります。

  • TARGET:UBT によってサポートされるビルド ターゲット。詳細は「ターゲット」のドキュメントを参照してください。

  • PLATFORM:Unreal Engine によってサポートされるプラットフォーム。Unreal Engine のプラットフォーム サポートについての詳細は、「一般的なプラットフォームのサポート」ページを参照してください。

  • ANALYZER:指定されているプラットフォーム上に提供されたターゲットを解析するために UBT で使用される静的コード アナライザー。使用可能なオプションを確認するには、次の「サポートされているアナライザー」セクションを参照してください。

サポートされているアナライザー

アナライザー

説明

Default

選択したコンパイラのデフォルトの静的アナライザー (ある場合)。

VisualCpp

ビルトインの Visual C++ の静的アナライザー。Microsoft Visual C++ (MSVC) ベースのプラットフォームでのみサポートされます。

PVSStudio

PVS-Studio の静的アナライザー。MSVC ベースのプラットフォームでのみサポートされます。

PVS-Studio では、インストールされた PVS-Studio.exe 実行ファイルの隣にライセンス ファイルを配置する必要があります。PVS-Studio およびライセンスの取得についての詳細は、PVS-Studio のドキュメントを参照してください。

Clang

Clang の静的アナライザー。コンパイラが強制的に MSVC ベースのプラットフォームの Clang になります。

Clang の静的アナライザーは現在、ベータ版 です。ベータ版の機能は、その機能の仕組みを把握し、パイプラインを計画し、テスト コンテンツを作成する機会を開発者に提供するものです。現在もシッピング品質のパフォーマンス、安定性、プラットフォーム サポートを目指して開発しているため、ベータ版の機能を本番環境で使用する場合にはご注意ください。なお、アセットの下位互換性はサポートされており、これらの機能の API は安定しています。

Unreal Engine のルート ディレクトリから次のコマンドを実行し、Windows 64 ビットのプラットフォームで Unreal Editor をターゲットとしてデフォルトの静的コード アナライザーを使用します。

Engine\Build\BatchFiles\RunUBT.bat UnrealEditor Win64 Development -StaticAnalyzer=Default

Unreal Engine のルート ディレクトリから次のコマンドを実行し、Windows 64 ビットのプラットフォームで Lyra Starter Game をターゲットとして Visual C++ の静的コード アナライザーを使用します。

Engine\Build\BatchFiles\RunUBT.bat LyraGame Win64 Development -StaticAnalyzer=VisualCpp

Clang Analyzer のコマンドライン オプション

オプション

説明

-StaticAnalyzerOutputType=html

解析の警告を説明するナビゲーション付きの Web ページを書き出します。これらの HTML ファイルは、選択したプラットフォームおよびターゲットの Engine/Intermediate/Build ディレクトリ内にある適切なフォルダに書き込まれます。

-StaticAnalyzerMode=shallow

浅い解析を有効にします。これにより解析が素早く完了しますが、通常の解析に比べて有益ではありません。一般的な目的でこのモードを使用することは、お勧めしません。

-StaticAnalyzerChecker=CHECKER

デフォルトのリストではなく、有効にする静的アナライザー チェッカーのリストを提供します。

-StaticAnalyzerDisableChecker=CHECKER

静的アナライザーのデフォルト チェッカーを無効にします。このオプションでは、デフォルトの無効なチェッカーである deadcode.DeadStores および security.FloatLoopCounter をオーバーライドします。このオプションは、-StaticAnalyzerChecker が設定されている場合は使用されません。

-StaticAnalyzerAdditionalChecker=CHECKER

デフォルトではない追加の静的アナライザー チェッカーを有効にします。このオプションは、-StaticAnalyzerChecker が設定されている場合は使用されません。

すべての Clang アナライザー チェッカーのリストは、Clang ドキュメントの「Available Checkers」を参照してください。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル