exponenta event banner

Обнаружение ошибок проектирования в пользовательском коде C/C + +

Чтобы обнаружить в модели с пользовательским кодом C/C + + в блоках модели или диаграммах Stateflow ® ошибки доступа к массиву по нулю и за пределами границ, используйте анализ обнаружения ошибок конструкции. Simulink Design Verifier идентифицирует код, который приводит к ошибкам, а затем либо доказывает, что ошибки являются допустимыми, либо создает тестовые примеры, которые реплицируют ошибку.

В этом примере показано, как обнаружить ошибки деления на ноль в модели, состоящей из кода C/C + + в диаграмме Stateflow ®.

Шаг 1: Открытие модели

Пример модели sldvexCustomCodeErrorDetectionExample содержит диаграмму Stateflow ®, которая вызывает пользовательский код C/C + +, использующий шины ввода и вывода.

open_system('sldvexCustomCodeErrorDetectionExample');

Шаг 2: Выполнение анализа обнаружения ошибок проекта

Чтобы выполнить анализ обнаружения ошибок конструкции, на вкладке «Проверка конструкции» выберите «Обнаружение ошибок конструкции». После завершения анализа окно Сводка результатов (Results Summary) показывает, что одна цель сфальсифицирована.

Шаг 3: Просмотр результатов анализа

На вкладке Проверка конструкции (Design Verifier) в разделе Результаты проверки (Review Results) щелкните Выделить в модели (Highlight in Model). Чтобы просмотреть цели ошибок времени выполнения C/C + +, которые привели к ошибке, щелкните редактор Simulink ®. В окне Инспектор результатов (Results Inspector) отображается деление на нулевые цели.

Примечание.При нажатии кнопки View test case для цели Error - needs simulation Simulink ® Design Verifier™ отображает тестовый случай, который воспроизводит ошибку. При моделировании тестового случая во время пользовательского анализа кода может произойти сбой MATLAB ®.

Чтобы просмотреть HTML-отчет, на вкладке Design Verifier щелкните HTML-отчет. В разделе Состояние целей обнаружения ошибок конструкции в отчете описывается сфальсифицированная цель.

Шаг 4: Исправление ошибок проектирования

В примере модели щелкните правой кнопкой мыши затемненный блок насыщения и раскомментируйте блок. Повторно проанализируйте модель, щелкнув Обнаружить ошибки конструкции (Detect Design Errors). Результаты показывают, что цель времени выполнения C/C + + действительна.

Шаг 5: Очистка

Чтобы завершить пример, закройте модель.

close_system('sldvexCustomCodeErrorDetectionExample', 0);

Связанные темы