主要内容

在 SIL 或 PIL 仿真期间调试生成代码

R2026b

如果软件在环 (SIL) 或处理器在环 (PIL) 仿真失败,或您注意到原始函数输出与生成代码输出之间存在差异,您可以在启用调试器的情况下重新运行仿真。通过插入断点,您可以观察代码节的行为,这有助于您了解问题的原因。

对于 SIL 或 PIL 仿真失败,您也可以在诊断查看器中查看标准输出和标准错误流的信息。例如:

  • 来自代码中 printf 语句的输出。

  • 发送到 stderr 的错误消息。

  • 一些低级系统消息。

在 SIL 仿真期间,目标应用程序重定向 stdout 和 stderr 流。当应用程序终止时,诊断查看器显示来自重定向流的信息。目标应用程序还提供基本信号处理程序,用于采集 POSIX® 信号 SIGFPE、SIGILL、SIGABRT 和 SIGSEV。对于此信号处理程序,目标应用程序包含文件 signal.h。

SIL 调试

下表提供有关调试器支持的信息。

操作系统支持的调试器

Windows®

Microsoft® Visual Studio® IDE。

Visual Studio Code 与 MinGW® GDB。需要安装 MATLAB® Coder™ Interface for Visual Studio Code Debugging 支持包。请参阅https://www.mathworks.com/matlabcentral/fileexchange/103555-matlab-coder-interface-for-visual-studio-code-debugging。

Linux®

GNU® Data Display Debugger (DDD)。

Visual Studio Code 与 GDB。需要安装 MATLAB Coder Interface for Visual Studio Code Debugging 支持包。请参阅https://www.mathworks.com/matlabcentral/fileexchange/103555-matlab-coder-interface-for-visual-studio-code-debugging。

注意

仅当 Simulink® 产品系列支持您的 Microsoft Visual C++®、Xcode 或 GNU GCC 编译器时,您才能执行 SIL 调试。有关详细信息,请参阅支持的编译器。

要为 SIL 仿真启用调试器,请执行以下操作之一:

  • 在 SIL/PIL 选项卡上的设置库中,在 SIL/PIL 设置下,点击调试。

  • 在“配置参数”对话框中,选中为 SIL 或 PIL 启用源代码级别调试复选框。

如果您的顶层模型具有 Model 模块,则顶层模型的为 SIL 或 PIL 启用源代码级别调试参数会覆盖引用模型的对应参数。

当您运行 SIL 仿真时,您的 model.c 或 model.cpp 文件会打开,例如,在 Microsoft Visual Studio IDE 中,调试器断点位于 model _initialize 和 model _step 函数的开头。

Microsoft Visual Studio display shows function with debugger breakpoint.

您现在可以使用调试器功能来观察代码行为。例如,您可以步进代码并检查变量。

当使用动态链接库 (DLL) 时,Microsoft Visual Studio 为 SIL 调试的每个函数断点应用两个断点:一个用于 C/C++ 代码函数,另一个用于反汇编代码中的 DLL 入口函数。当调试器运行代码时,它首先到达 DLL 入口函数。要到达 C/C++ 代码中的对应点,请点击继续按钮 (F5)。

要结束调试会话,请执行以下操作:

  1. 删除所有断点。

  2. 点击继续按钮(F5 键)。

    SIL 仿真运行完毕,Microsoft Visual Studio IDE 关闭。

注意

在 Microsoft Visual Studio IDE 中,如果您选择调试 > 停止调试,SIL 仿真会超时并显示以下错误消息:

The timeout of 1 seconds for receiving data from the rtiostream 
interface has been exceeded. There are multiple possible causes 
for this failure.
... 
...

PIL 调试

当您在 Simulink 和目标硬件之间设置 PIL 连接时,使用 target.ExecutionService 和 target.DebugExecutionTool 对象指定调试器 - 请参阅Support PIL Debugging和 DebugExecutionTool Template。

要为 PIL 仿真启用调试器,请执行以下操作之一:

  • 在 SIL/PIL 选项卡上的设置库中,在 SIL/PIL 设置下,点击调试。

  • 在“配置参数”对话框中,选中为 SIL 或 PIL 启用源代码级别调试复选框。

如果您的顶层模型具有 Model 模块,则顶层模型的为 SIL 或 PIL 启用源代码级别调试参数会覆盖引用模型的对应参数。

另请参阅

主题