主要内容

调试生成的 MEX 代码

在生成 C/C++ 代码或加速 MEX 函数之前,请通过生成和运行 MEX 函数来检查 MATLAB® 代码中的合规性问题。要了解如何对常见错误进行故障排除,请参阅使用 MEX 函数检查 MATLAB 代码中的问题

此外,遵循以下最佳做法来调试 MEX 函数:

  • 当您调用 MEX 函数时,向它传递您在原始 MATLAB 算法中使用的相同输入。不要把 coder.Constant 或任何 coder.Type 类传递给 MEX 函数。您只能将这些类与 codegen 函数结合使用。

  • 要运行由 MATLAB Coder™ 生成的 MEX 函数,您必须有 MEX 函数所需的所有工具箱的许可证。例如,如果从使用 Computer Vision Toolbox™ 函数或 System object™ 的 MATLAB 算法生成 MEX 函数,则必须有 Computer Vision Toolbox 许可证才能运行 MEX 函数。

  • 查看代码中包含的函数的参考页中的“扩展功能”部分。某些 MATLAB 函数的行为在生成的代码中有所不同。请参阅生成的代码和 MATLAB 代码之间的差异

  • 查看对使用 coder.ceval 的外部 C/C++ 函数的调用。验证数据类型、输入和输出布局是否正确。MATLAB 默认使用列优先布局。

  • 升级 MATLAB 后,在使用新版本运行 MEX 函数之前,请先重新生成它们。

  • 使用 dispfprintf 函数来检查 MEX 函数变量的内容。您也可以使用 save 函数将 MEX 函数变量保存到 MAT 或 ASCII 格式的文件中。请参阅Perform Data Read and Write Operations in Generated Code

  • 使用 C/C++ 调试器调试 MEX 函数。在生成代码之前,通过使用启用 C/C++ 编译器调试模式参数启用 C/C++ 调试模式。或者,在命令行中使用 codegen 命令与 -g 选项在调试模式下生成一个 MEX 函数。

另请参阅

|

主题