生成された C++ コードのデバッグ
Understand how to use Visual Studio to debug your generated C++ code.
読み終わるまでの所要時間 5 分最終更新 1ヶ月前
Visual Studio を使用して、ユニバーサル Windows プラットフォーム (UWP) アプリケーション用に生成された C++ コードをデバッグできます。
生成された C++ コードのクラスとメソッドの名前
IL2CPP クラス
IL2CPP クラスは、 の形式に従います。
<ClassName>_t#number- はクラス名
<ClassName> - 任意の は一意のタイプ番号です。
#number
IL2CPP クラスの例:
- - String クラス
String_t - - Object クラス
Object_t - - Type クラス
Type_t - - StringBuilder クラス
StringBuilder_t26
IL2CPP メソッド
IL2CPP メソッドは、 の形式に従います。
<ClassName>_<MethodName>_m#number- はメソッドの宣言型のクラス名
<ClassName> - はメソッド名
<MethodName> - は一意のメソッド番号
#number
IL2CPP メソッドの例:
- - ConfigurationSection クラスの DeserializeSection メソッド
ConfigurationSection_DoDeserializeSection_m1275 - - String クラスの Format メソッド
String_Format_m4102 - - Mathf クラスの Sqrt メソッド
Mathf_Sqrt_m289
IL2CPP 静的フィールド構造体
静的フィールド構造体は、 の形式に従います。構造体名の最初の部分は宣言型と同じです。
<ClassName>_t#number_StaticFields静的フィールド構造体の例:
StringBuilder_t26_StaticFieldsThing_t24_StaticFields
C++ コメント
各クラスまたはメソッド定義の前に、C++ は完全なクラスまたはメソッド名を示すコメントを自動的に生成します。
C++ コメントの例:
// System.Text.StringBuilder struct StringBuilder_t26 : public Object_t { // System.Int32 System.Text.StringBuilder::_length int32_t length_1; // System.Int32 System.Text.StringBuilder::_maxCapacity int32_t maxCapacity_2; };
変数の値の確認
生成された C++ コードは、Visual Studio デバッガーを使用して変数の値を確認することでデバッグできます。
デバッガーを停止したい場所に Visual Studio でブレークポイントを設定して変数を確認できます。Visual Studio では、変数にマウスオーバーするか、Watch ウィンドウを使用して変数の値を確認できます。
静的フィールドの確認
IL2CPP では、Unity は Il2CppClass インスタンスに静的フィールドを格納します。静的フィールドの値を確認するには、以下を行う必要があります。
-
コード内でその型の Il2CppClass 構造体へのポインターを探します。注意これらのポインターは、使用するメソッドのスコープ内にありますが、1 回確認した後は、アプリケーション実行中、同じメモリアドレスにとどまります。
-
そのポインタからフィールドの値を取得します。これは、その特定の型の静的フィールドを含むメモリブロックへのポインターです。
static_fields -
対応する静的フィールド構造体に値をキャストします。
-
Visual Studio デバッガーで値を確認します。
例外の検証
IL2CPP はネイティブ C++ 例外を使用して .NET 例外を実装します。
コードの例外を調べるには、以下を行います。
- ウォッチウィンドウでの例外オブジェクトの検査
- C++ 例外でデバッガーのブレークを有効化