调试生成的 C++ 代码
Understand how to use Visual Studio to debug your generated C++ code.
阅读时间4 分钟最后更新于 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 类的 DeserializationSection 方法
ConfigurationSection_DoDeserializeSection_m1275 - - String 类的格式方法
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; };
观察变量值
您可以通过使用 Visual Studio 调试器观察变量的值来调试所生成的 C++ 代码。
您可以在 Visual Studio 中设置断点,即您希望调试器停止的位置,以便能够观察变量。Visual Studio 允许您通过将鼠标悬停在变量上或使用观察 (Watch) 窗口来观察变量值。
观察静态字段
在 IL2CPP 中,Unity 将静态字段存储在 Il2CppClass 实例中。要观察静态字段的值,您需要:
-
在代码中查找指向该类型 Il2CppClass 结构的指针。**注意:**这些指针位于使用它们的方法的作用域内,但在观察一次之后,指针将在应用程序运行期间保持在相同的内存地址。
-
从该指针检索字段的值。这是一个指针,指向包含该特定类型的静态字段的内存块。
static_fields -
将该值转换为相应的静态字段结构。
-
观察 Visual Studio 调试器中的值。
调查异常
IL2CPP 使用本机 C++ 异常来实现 .NET 异常。
要调查代码中的异常,您可以:
- 在观察 (Watch) 窗口中检查异常对象
- 启用调试器中断 C++ 异常