文档

Unity Engine

Unity Engine

调试生成的 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 类示例:

IL2CPP 方法

IL2CPP 方法遵循
<ClassName>_<MethodName>_m#number
的格式,其中:
  • <ClassName>
    是方法的声明类型的类名称
  • <MethodName>
    是方法名称
  • #number
    是唯一的方法编号
IL2CPP 方法示例:

IL2CPP 静态字段结构

静态字段结构遵循
<ClassName>_t#number_StaticFields
的格式,其中结构名称的第一部分与声明类型相同。
静态字段结构示例:
  • StringBuilder_t26_StaticFields
  • Thing_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 实例中。要观察静态字段的值,您需要:
  1. 在代码中查找指向该类型 Il2CppClass 结构的指针。
    **注意:**这些指针位于使用它们的方法的作用域内,但在观察一次之后,指针将在应用程序运行期间保持在相同的内存地址。
  2. 从该指针检索
    static_fields
    字段的值。这是一个指针,指向包含该特定类型的静态字段的内存块。
  3. 将该值转换为相应的静态字段结构。
  4. 观察 Visual Studio 调试器中的值。

调查异常

IL2CPP 使用本机 C++ 异常来实现 .NET 异常。
要调查代码中的异常,您可以:

其他资源