Чтобы обнаружить деление на нули и вне связанных ошибок доступа к массиву в модели с пользовательским кодом C/C + + в блоках модели или графиках Stateflow ®, используйте проектный анализ обнаружения ошибок. Simulink Design Verifier определяет код, который приводит к ошибкам, а затем либо доказывает, что ошибки действительны, либо генерирует тесты, которые реплицируют ошибку.
В этом примере показано, как обнаружить деление на нули ошибок в модели, которая состоит из кода C/C + + в графике Stateflow ®.
Пример модели sldvexCustomCodeErrorDetectionExample
содержит график Stateflow ®, которая вызывает пользовательский код C/C + +, который использует входную и выходную шины.
open_system('sldvexCustomCodeErrorDetectionExample');
Чтобы выполнить анализ поиска ошибок проектирования, на вкладке Design Verifier, нажмите Detect Design Errors. После завершения анализа окно Сводных данных результатов указывает, что одна цель фальсифицирована.
На вкладке Design Verifier, в разделе Review Results, нажмите Highlight in Model. Чтобы просмотреть цели ошибок времени выполнения C/C + +, которые привели к ошибке, щелкните Редактор Simulink ®. В окне Результатов Inspector отображается деление по нулю целей.
Примечание. Когда вы нажимаете View тест для цели симуляции Error - needs, Simulink ® Design Verifier™ отображает тест, который повторяет ошибку. Если вы симулируете контрольный пример, MATLAB ® может завершиться сбоем во время пользовательского анализа кода.
Чтобы просмотреть отчет HTML, на вкладке Design Verifier нажмите HTML Report. В разделе Поиск Ошибок Проектирования Targets Status в отчете описывается сфальсифицированная цель.
В модели примера щелкните правой кнопкой мыши блок Saturation, который затемнен, и Раскомментируйте блок. Переанализируйте модель, нажав Обнаружить ошибки проекта (Detect Ошибки Проектирования). Результаты показывают, что цель выполнения C/C + + действительна.
Чтобы завершить пример, закройте модель.
close_system('sldvexCustomCodeErrorDetectionExample', 0);