Main Content

本页面提供的是上一版软件的文档。当前版本中已删除对应的英文页面。

查看诊断

您可以使用诊断查看器查看和诊断由您的模型生成的错误和警告。诊断查看器显示三种类型的诊断消息:错误、警告和信息。模型在运行时操作(例如,模型加载、仿真或更新图等)过程中生成这些消息。

您可以将诊断查看器停靠在某个模型上,以查看特定于该模型的诊断,也可以使用独立的诊断查看器来查看所有模型的诊断。

要将诊断查看器停靠到模型,请转至调试 > 诊断 > 停靠的诊断查看器或转至建模 > 环境 > Simulink 预设项 > 编辑器 > 使用停靠的诊断查看器

注意

停靠诊断查看器是一项系统范围的操作。您无法按模型更改预设项。

Simulink editor showing the block diagram of the model vdp_callback with a docked Diagnostic Viewer.

诊断查看器窗口分为以下几部分:

  • 工具栏菜单:显示各种命令,以帮助您管理诊断消息。有关详细信息,请参阅工具栏

  • 诊断消息窗格:显示错误、警告和信息消息。有关详细信息,请参阅诊断消息窗格

  • 建议的操作:显示建议和修复程序,以更正诊断错误和警告。有关详细信息,请参阅建议的操作

工具栏

要管理诊断消息,请使用诊断查看器工具栏。

菜单操作

Exclamation mark in a solid red circle and a count of error messages

过滤所有错误消息。要删除过滤器,请再次点击。

Exclamation mark in a solid yellow triangle and a count of warning messages

过滤所有警告消息。要删除过滤器,请再次点击。

Exclamation mark in a solid blue circle and a count of information messages

过滤所有信息消息。要删除过滤器,请再次点击。

Text box to enter search string

在消息中搜索特定关键字以及在消息之间导航。

Drop-down list of stages

时间和事件出现在此下拉列表中。您可以通过点击事件来查看特定于该事件的诊断消息。

报告

您可以:

  • 展开或折叠消息

  • 将所有消息或最新消息保存到日志文件中

  • 复制所有消息或最新消息

注意

您可以右键点击消息内的任意位置,以保存或复制特定于该事件的消息。

设置

分组合并类似警告。设置要在选项卡式窗格中显示的最大模型数以及每个模型显示的最大事件数

诊断消息窗格

诊断消息窗格以选项卡形式显示错误、警告和信息消息。这些消息是分层的,并通过颜色编码加以区分。

系统会为每个后续事件生成一个新阶段,您可以保存或清除阶段。每个阶段代表一个事件,如模型加载、更新图或仿真等。

不同类型的诊断消息包括:

  • 信息消息:显示与模型加载有关的信息。信息消息标记为 a light blue vertical bar

  • 高优先级警告:模型加载期间遇到的错误显示为高优先级警告。在未更正高优先级警告消息的情况下的任何后续操作(例如更新模型)都标记为错误。高优先级警告标记为 a red and yellow striped vertical bar

  • 警告:显示在模型上执行操作期间出现的相关警告。警告标记为 a yellow and orange striped vertical bar

  • 错误:显示在模型上执行操作期间出现的相关错误。错误标记为 a red and pink striped vertical bar

    提示

    要找出错误的来源,请点击消息中的超链接。模型中的错误来源将突出显示。

    Block diagram of the model vdp_callback with the source of error highlighted red and yellow.

您还可以提供反馈来改进诊断消息。要提供反馈,请点击诊断查看器中诊断消息旁边的添加注释按钮 ,并在文本框中输入您的反馈。反馈的字符限制为不超过 1024 个字符。请注意,要请求帮助或报告技术问题,您必须联系技术支持

追踪诊断位置

诊断查看器可以追踪错误的位置,以便您轻松调查模型中的错误。如果错误所在的文件被另一个文件所调用,诊断结果将显示为可展开的层叠结构。您可以根据需要展开或折叠该层叠结构。展开该层叠结构会显示有关错误或警告所在文件和行的信息。您可以点击任一链接转到错误或警告所在的位置。当在 MATLAB® 中使用 sim 命令时,在启用了堆栈跟踪的情况下也会看到相同的诊断消息。

Diagnostic Viewer window displaying the diagnostic in an expanded stack.

注意

追踪错误的确切位置不适用于受保护的文件。

标识来自自定义编译器的诊断

诊断查看器可以识别来自自定义编译器生成的编译的错误和警告。您可以使用以下指令指定特定于编译器的模式:

% Here tool is the buildtool obtained from the toolchain
tool.setDirective ('WarningPattern','warning #(\d+):'); %Specifies warning patterns
tool.setDirective ('ErrorPattern','error:'); %Specifies error pattern
tool.setDirective ('FileNamePattern','[^\s]*\w+\.(c|h)'); %Specifies file name pattern
tool.setDirective ('LineNumberPattern','\(\d+\)'); %Specifies line number pattern

有关创建 ToolchainInfo 对象的详细信息,请参阅Register Custom Toolchain and Build Executable (Simulink Coder)

隐藏诊断

可以从诊断查看器中隐藏模型中特定对象的某些数值诊断(例如,溢出、饱和度、精度损失)。您还可以隐藏诊断级别设置为错误(在“模型配置参数”的诊断部分中设置)的某些错误。您可以为隐藏的诊断添加注释。

要隐藏来自指定源的诊断,请在诊断查看器中点击隐藏。诊断的隐藏设置与模型一起保存,并应用于所有会话。

A warning message in Diagnostic Viewer with a button to suppress.

要向隐藏的诊断添加适当的注释,请点击添加注释。要还原隐藏的诊断,请选择还原

Suppressed diagnostic in Diagnostic Viewer with hyperlinks to add a comment or restore.

要查看隐藏的诊断,请在调试选项卡上,点击诊断 > 隐藏诊断管理器

隐藏管理器以表形式显示诊断的模型名称、隐藏位置、上次修改的详细信息和注释。选择诊断以还原诊断或将诊断从模块级别移至父级(添加到父级)。您可以针对诊断添加或编辑内嵌注释。使用全局过滤选项在诊断消息、隐藏位置和注释中进行过滤或搜索。您也可以选择多个诊断并留下全局注释。

Suppression Manager window

有关详细信息,请参阅 Suppress Diagnostic Messages Programmatically

建议的操作

诊断查看器为诊断错误和警告消息提供建议和修复程序。这些建议和修复程序显示在诊断消息窗格的建议的操作部分。

一个诊断错误或警告可能有多个修复程序和建议。每个修复程序有一个关联的修复按钮。

您可以点击最合适的修复程序的修复按钮,自动更正该错误。在某些情况下,您可以通过以下方式之一提供修复:

  • 在可用的编辑框中输入值。

  • 从组合框中列出的值中选择值。

Diagnostic Viewer window displaying a warning message and suggested actions with Fix and Apply buttons.

成功应用修复程序之后,诊断错误或警告的修复按钮将不再可用。如果修复程序不成功,建议的操作部分将显示失败消息。

对于无法自动修复的错误和警告,会提出建议。

Diagnostic Viewer window displaying an error message and suggested actions.

注意

只有存在预定义的修复程序的诊断错误或警告,建议的操作部分才可用。

相关主题