Version: 6000.3
语言: 中文
日志文件参考
Roslyn 分析仪和源生成器

堆栈跟踪日志记录

Unity 控制台消息和日志文件可以包含详细的堆栈跟踪信息。控制台还链接到生成消息的代码行。当您想要识别导致日志条目出现的函数调用的行、方法或序列时,这非常有用。

提示:检查代码的另一种方法是将调试器附加到编辑器或构建的播放器。

托管代码和非托管代码的堆栈跟踪

Unity 可以为托管代码和非托管代码提供堆栈跟踪信息:

  • 托管代码:托管 DLL 或 C#脚本一段代码,允许您创建自己的组件、触发游戏事件、随时间修改组件属性以及以您喜欢的任何方式响应用户输入。更多信息
    请参阅术语表
    在 Unity 中运行。这些脚本可以是 Unity 附带的脚本、您编写的自定义脚本、资产商店由Unity 和社区成员创建的不断增长的免费和商业资产库。提供各种各样的资产,从纹理、模型和动画到整个项目示例、教程和编辑器扩展。更多信息
    请参阅术语表
    插件在 Unity 外部创建的一组代码,用于在 Unity 中创建功能。可以在 Unity 中使用两种插件:托管插件(使用 Visual Studio 等工具创建的托管 .NET 程序集)和本机插件(特定于平台的本机代码库)。更多信息
    请参阅术语表
    或在引擎中运行的任何其他 C# 脚本。

  • 非托管代码:原生 Unity 引擎代码,或直接在您的机器或目标构建平台上运行的原生插件中的代码。非托管代码通常是从 C 或 C++ 代码编译而来的。只有当您拥有本机二进制文件的原始源代码时,您才能访问它。 通常,仅当需要确定错误是由代码还是引擎代码引起的,以及引擎代码的哪一部分时,才会对非托管代码使用堆栈跟踪。

Unity 提供三种堆栈跟踪选项:

  • 没有:Unity 不输出堆栈跟踪信息。
  • ScriptOnly:Unity 仅输出托管代码的堆栈跟踪信息。这是默认选项。
  • 满:Unity 输出托管代码和非托管代码的堆栈跟踪信息。

堆栈跟踪资源要求

解析堆栈跟踪,尤其是全栈跟踪,是一项资源密集型作。堆栈跟踪的一些最佳实践包括:

  • 仅使用堆栈跟踪进行调试。不要将应用程序部署到启用了堆栈跟踪的用户。
  • 限制显示堆栈跟踪的消息类型。例如,请考虑仅对异常和警告使用堆栈跟踪。

设置堆栈跟踪类型

注意:堆栈跟踪选项是一种构建设置,会影响构建的播放器。它不是编辑器中的视图首选项。

要指定要在堆栈跟踪中包含多少详细信息,您可以使用脚本 API 或编辑器:

  • 若要通过脚本 API 控制堆栈跟踪日志记录,请使用 Application.SetStackTraceLogType。 您可以使用 API 在玩家构建之前或运行时更改播放器的堆栈跟踪设置。

  • 若要使用控制台,请选择“控制台”菜单按钮,然后:
    • 要为所有控制台消息类型选择相同的堆栈跟踪选项,请选择“堆栈跟踪日志记录>全部”。
    • 若要仅为其中一种控制台消息类型选择堆栈跟踪选项,请选择“堆栈跟踪日志记录”> [消息类型]。 使用新设置重建播放器。
  • 要使用“播放器设置”窗口,请选择 编辑>项目设置(Project Settings) > “播放器(Player) > ”其他设置(Other Settings) 。 使用新设置重建播放器。

控制台中的堆栈跟踪日志记录选项。此示例显示了“异常”的选项。
控制台中的堆栈跟踪日志记录选项。此示例显示了“异常”的选项。

堆栈跟踪输出中的开源文件

消息的全文包括对带有链接的代码文件中特定行的引用。单击任意链接以在 IDE 中的引用行处打开文件。

查找已构建应用程序的输出日志文件

构建的应用程序不会输出到控制台。若要查看堆栈跟踪,请使用应用程序的日志文件

其他资源

日志文件参考
Roslyn 分析仪和源生成器