主要内容

代码生成报告

MATLAB®编码器™生成一个代码生成报告,帮助您:

  • 调试代码生成问题,并验证您的MATLAB代码是否适合代码生成。

  • 查看生成的C/ c++代码。

  • MATLAB源代码和生成的C/ c++代码之间的跟踪。

  • 了解代码生成器如何在MATLAB代码中确定和传播变量和表达式的类型信息。

  • 识别生成代码中的潜在问题。

  • 使用嵌入式编码器访问其他报告®

报告生成

当您启用报告生成或发生错误时,代码生成器将生成代码生成报告。要控制代码生成报告的生成和打开,请使用应用程序设置,codegen选项或配置对象属性。

MATLAB编码器应用:

  • 若要生成报表,请设置总是创建一个报告是的

  • 如果您希望应用程序为您打开报告,请设置如果生成了报告,则自动启动报告是的

在命令行中,使用codegen选项:

  • 要生成报告,请使用报告选择。

  • 要生成和打开报表,请使用-launchreport选择。

或者,使用配置对象属性:

  • 若要生成报表,请设置GenerateReport真正的

  • 如果你愿意codegen要为您打开报告,请设置LaunchReport真正的

报告位置

代码生成报告被命名report.mldatx.它位于超文本标记语言代码生成输出文件夹的子文件夹。如果您有MATLAB R2018a或更高版本,您可以打开report.mldatx通过双击文件。

错误和警告

上查看代码生成错误、警告和信息消息所有消息选项卡。要突出显示错误或警告的源代码,请单击该消息。处理第一条消息是最佳实践,因为后续的错误和警告可能与第一条消息相关。

上查看编译和链接错误和警告建立日志选项卡。代码生成器仅对MEX输出或对其他类型的输出使用受支持的编译器时检测编译警告。看到支持编译器

文件和函数

该报告列出了MATLAB源函数和生成的文件。MATLAB源窗格中,函数列表View根据包含的文件组织函数。要根据调用结构可视化函数,请使用调用树视图。

若要在报表的代码窗格中查看函数,请单击列表中的函数。单击某个函数将打开包含该函数的文件。若要在MATLAB编辑器中编辑所选文件,请单击在MATLAB中编辑或单击代码窗格中的行号。

如果您有Embedded Coder,并生成启用可追溯性的报告,要在代码窗格中相邻地查看源代码和生成的代码,请单击跟踪代码.您可以在源代码和生成的代码之间进行交互跟踪。看到MATLAB代码与生成的C/ c++代码的交互跟踪(嵌入式编码)

如果您想将为独立代码(库或可执行文件)生成的文件移动到另一个开发环境,您可以通过单击将它们放入zip文件中包代码

专门的函数或类

当使用不同类型的输入调用函数或类使用不同类型的属性时,代码生成器将产生专门化。在MATLAB源窗格中编号的函数(或类)表示专门化。例如:

定点转换后的函数列表

如果将浮点MATLAB代码转换为定点MATLAB代码,然后生成定点C/ c++代码,则MATLAB源窗格中列出了原始MATLAB函数和定点MATLAB函数。例如:

MATLAB

若要在代码窗格中查看MATLAB函数,请单击MATLAB源窗格。在代码窗格中,当您在变量或表达式上暂停时,工具提示将显示关于其大小、类型和复杂性的信息。此外,语法高亮显示可以帮助您识别MATLAB语法元素和某些代码生成属性,例如函数是否是外部的,或者参数是否是常量。

非本征函数

报告用紫色文本标识一个外部函数。工具提示表明该函数是外部函数。

此图像显示了识别外部函数时的报告。外部函数是紫色的。

常数参数

橙色文本表示入口点函数或专门化函数的编译时常数参数。工具提示包含常量值。

此图像显示了识别编译时costant参数时的报告。常数a用橙色突出显示。

了解常量参数的值有助于理解生成的函数签名。它还可以帮助您查看代码生成何时为不同的常量参数值创建函数专门化。

要将值导出到工作区中的变量,请单击export图标

MATLAB变量

变量选项卡提供了所选MATLAB函数的变量信息。控件中的函数,单击该函数MATLAB源窗格。

变量表显示:

  • 类、大小和复杂性

  • 定点类型的属性

  • 数组是否稀疏

  • 阵列布局

此信息可帮助您调试错误,例如类型不匹配错误,以及了解代码生成器如何在生成的代码中传播类型和表示数据。

变量选项卡上的可视化指标

该表描述变量表中的符号、徽章和其他指标。

列在变量表 指示器 描述
的名字 扩张器 变量具有可以通过单击展开器查看的元素或属性。
的名字 {:} 同质单元阵列(所有元素具有相同的属性)。
的名字 {n} n异构单元数组的元素。
V > n v使用不同的类、大小和复杂度重用。数量n用一组唯一的属性标识重用。当您在重命名的变量上暂停时,报告只突出显示共享类、大小和复杂性的该变量的实例。看到重复使用具有不同属性的相同变量
大小 : n 上限为的可变大小数组n
大小 :? 无上限的可变大小数组。
大小 斜体 可变大小的数组,其尺寸在执行期间不改变大小。
稀疏的前缀 稀疏阵列。
复杂的前缀 复数。

定点类型。

要查看定点属性,请单击徽章。

变量选项卡上的数组布局指示器

该表描述了变量表中指示数组布局的标记。

徽章 描述

行主数组布局。

列-主数组布局。

主要行布局和主要列布局的混合。

看到行-主数组和列-主数组布局

跟踪代码

您可以通过使用以下方法之一跟踪MATLAB源代码和生成的C/ c++代码:

  • 交互式地可视化MATLAB代码和生成的代码之间的映射。要访问交互式跟踪,请在报告中单击跟踪代码

    跟踪代码按钮仅当您具有嵌入式编码器并且在生成代码时启用了代码可跟踪性时才启用。看到MATLAB代码与生成的C/ c++代码的交互跟踪(嵌入式编码)

  • 在生成的C/ c++代码中包含源代码作为注释。

    在注释中,代码生成器生成一个标记,帮助您找到相应的MATLAB源代码。如果您使用的是Embedded Coder,则标记是指向源代码的链接。看到跟踪生成的C/ c++代码到MATLAB源代码

代码的见解

代码生成器可以检测并报告生成的代码中可能发生的问题。上查看消息代码的见解选项卡。这些问题包括:

  • 生成代码的行为与MATLAB代码的行为之间的潜在差异。只有启用了潜在差异报告,报告才包含潜在差异消息。看到潜在差异报告

  • 生成代码中的潜在数据类型问题,例如单精度和双精度操作。

    只有当您使用嵌入式编码器并且启用了潜在数据类型问题报告时,报告才会包含潜在的数据类型问题。如果您使用的是Fixed-Point Designer™,那么该报告还会标识昂贵的定点操作。看到在报告中突出潜在的数据类型问题(嵌入式编码)

  • 潜在的行主要问题。看到行-主数组布局代码设计

  • 自动并行问题。看到自动并行化生成代码中的循环

额外的报告

总结TAB可以有指向这些附加报告的链接:

报告的局限性

  • 的入口点摘要显示了的各个元素变长度输入宗量而且varargout,但变量表中没有显示它们。

  • 该报告不显示展开循环的全部信息。它显示任意迭代的数据类型。

  • 该报告不显示关于死代码的信息。

相关的话题

Baidu
map