版本:Unity 6 (6000.0)
语言:英语
调试 C# 代码
适用于 UWP 的 C# 脚本中的 WinRT API

调试生成的 C++ 代码

你可以使用 Visual Studio 调试针对通用 Windows 平台 (UWP) 应用程序生成的 C++ 代码。

了解生成的 C++ 代码中的类别和方法命名

IL2CPP 类别

IL2CPP 类别遵循<ClassName>_t#number格式,其中

  • <ClassName>是类别名称
  • 可选的#number是一个唯一的类型编号

示例 IL2CPPUnity 开发的脚本后端,可以在构建针对某些平台的项目时将它用作 Mono 的替代品。 更多信息
请查看词汇表
类别

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 允许你通过将鼠标悬停在变量上或 使用监视窗口 来观察变量值。

观察静态字段

在 IL2CPP 中,Unity 将静态字段存储在 Il2CppClass 实例中。若要观察静态字段的值,需要:

  1. 在代码中找到该类型的 Il2CppClass 结构的 指针
    注意:这些指针位于使用它们的函数作用域中,但一旦观察到它们,它们将会在应用程序运行期间保持在相同的内存地址。
  2. 从该指针中检索 static_fields 字段的值。这是指向包含该特定类型的静态字段的内存块的指针。
  3. 将值强制转换为相应的静态字段结构。
  4. Visual Studio 调试器 中观察值。

调查异常

IL2CPP 使用原生 C++ 异常来实现 .NET 异常。

若要调查代码中的异常,可以:

其他资源

调试 C# 代码
适用于 UWP 的 C# 脚本中的 WinRT API