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

堆栈跟踪日志记录

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

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

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

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

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

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

Unity 提供三种堆栈跟踪选项

  • 无:Unity 不输出堆栈跟踪信息。
  • 仅脚本:Unity 仅输出托管代码的堆栈跟踪信息。这是默认选项。
  • 完整:Unity 输出托管和非托管代码的堆栈跟踪信息。

堆栈跟踪资源需求

解析堆栈跟踪,尤其是完整堆栈跟踪,是一个资源密集型操作。堆栈跟踪的一些最佳实践包括

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

设置堆栈跟踪类型

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

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

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

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

Stack trace logging options from the Console. This example shows the options for Exception.
来自控制台的堆栈跟踪日志记录选项。此示例显示了异常的选项。

从堆栈跟踪输出中打开源文件

消息的完整文本包括对代码文件中特定行的引用以及链接。单击任何链接以在您的 IDE 中打开引用的代码行所在的文件。

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

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

其他资源


Did you find this page useful? Please give it a rating:

  • 日志文件参考
    Roslyn 分析器和源代码生成器