Version: Unity 6.0 (6000.0)
言語 : 日本語
IL2CPP runtime code checks
IL2CPP 追加引数のためのプラットフォーム固有の設定

IL2CPP によるマネージスタックトレース

マネージコードで例外が発生する場合、例外の原因を理解するには例外のスタックトレースが役立ちます。ただし、一部の状況ではマネージスタックトレースが予期した通りに表示されない場合があります。スタックトレースはビルド設定によって異なります。

C++ Compiler Configuration オプション

Debug

C++ Compiler Configuration プロパティを Debug に設定すると、IL2CPP は信頼性の高いマネージスタックトレースを報告し、各マネージメソッドをコールスタックに加えます。スタックトレースには、元の C# ソースコードの行番号は含まれません。

Release と Master

C++ Compiler Configuration プロパティを Release または Master に設定すると、IL2CPP によって、1 つまたは複数のマネージメソッドがないコールスタックが生成される場合があります。これは、C++ コンパイラーが欠落しているメソッドをインライン化するときに発生します。メソッドのインライン化は、通常、ランタイムのパフォーマンスを向上しますが、コールスタックを理解しにくくする場合があります。

IL2CPP は、常にコールスタック上に少なくとも 1 つのマネージメソッドを追加します。マネージ例外から作成されたスタックトレースの場合は、例外が発生したメソッドです。他のメソッドがインライン化されていない場合は、それらも追加されます。

ソースコード行番号

マネージスタックトレースにファイルと行番号の情報を追加するには、Edit > Project Settings > Player > Other Settings に移動します。次に、ConfigurationIL2CPP Stacktrace Information プロパティーを Method Name, File Name, and Line Number に設定します。

IL2CPP Stacktrace Information プロパティーで Method Name, File Name, and Line Number を設定
IL2CPP Stacktrace Information プロパティーで Method Name, File Name, and Line Number を設定

この設定は、IL2CPP にすべてのマネージスタックフレームをコールスタックに追加するよう指示します。マネージシンボルファイル (.pdb) が、そのコードが存在するマネージアセンブリ (.dll) で使用可能である限り、各スタックフレームには適切な C# 行番号も追加されます。

この機能を有効にすると、ビルド時間とビルドされたプログラムの最終的なサイズの両方がわずかに増加します。プレイヤーのビルドプロセスに、デバッグシンボルファイルを処理し、必要なシンボルの形式を含む新しいデータファイルを生成するステップが追加されます。Unity はこのデータファイルをビルドしたプレイヤーに同梱し、ランタイムにコールスタックの C# 行情報を判別するために使用します。

この機能を有効にすると、インライン化がある場合でも、Release または Master 設定のいずれかで正しいコールスタックを生成します。

Script Debugging の有効化

Script Debugging を有効にするには、File > Build Profiles に移動し、Script Debugging チェックボックスを有効にします。スクリプトデバッグを有効にすると、IL2CPP はメソッド、ファイル、および行番号とともに正しいマネージスタックトレースを報告します。ただし、これを行うとプログラムサイズが大きくなり、パフォーマンスが低下します。

スタックトレースのみを改善したい場合は、スクリプトデバッグを有効にしないでください。代わりに、上記の手順で ソースコード行番号 を有効にします。

追加リソース

IL2CPP runtime code checks
IL2CPP 追加引数のためのプラットフォーム固有の設定
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961