exponenta event banner

Обнаружение и отладка ошибок генерации кода

Стратегии отладки

Для подготовки алгоритмов к созданию кода MathWorks рекомендует выбрать стратегию отладки для обнаружения и исправления нарушений в приложениях MATLAB ®, особенно если они состоят из большого количества файлов MATLAB, которые вызывают функции друг друга. Ниже приведены две передовые практики:

Стратегия отладкиЧто делатьПрофессионалыНедостатки

Проверка снизу вверх

  1. Убедитесь, что функции нижнего уровня (leaf) подходят для создания кода.

  2. Поэтапная работа над иерархией функций для компиляции и проверки каждой функции, заканчивающейся функцией верхнего уровня.

  • Эффективный

  • Безопасный

  • Простота изоляции синтаксических нарушений

Требуются тесты приложений, работающие снизу вверх

Проверка сверху вниз

  1. Объявите все функции, вызываемые функцией верхнего уровня, внешними, поэтому fiaccel не компилирует их.

  2. Убедитесь, что функция верхнего уровня подходит для создания кода.

  3. В иерархии функций выполните следующие действия:

    А. Удалять внешние заявления один за другим

    b. Скомпилировать и проверить каждую функцию, заканчивая конечными функциями.

Позволяет сохранить тесты верхнего уровня

Вводит посторонний код, который необходимо удалить после проверки кода, включая:

  • Внешние объявления

  • Дополнительные операторы назначения, необходимые для преобразования непрозрачных значений, возвращаемых внешними функциями, в непрозрачные значения.

Обнаружение ошибок во время разработки

Чтобы обнаружить потенциальные проблемы для создания файлов MEX при написании алгоритма MATLAB, добавьте %#codegen директива к коду, который вы хотите fiaccel для компиляции. Добавление этой директивы указывает на намерение создать код из алгоритма и включает детальную диагностику во время анализа кода MATLAB.

Обнаружение ошибок во время компиляции

Прежде чем успешно создать код из алгоритма MATLAB, необходимо проверить, что алгоритм не содержит нарушений синтаксиса и семантики, которые могут привести к ошибкам компиляции, как описано в разделе Обнаружение и отладка ошибок генерации кода.

fiaccel проверяет все возможные нарушения синтаксиса во время компиляции. Когда fiaccel обнаруживает ошибки или предупреждения, автоматически создает отчет о создании кода, который описывает проблемы и предоставляет ссылки на код-нарушитель. См. раздел Отчеты по созданию кода.

Если код MATLAB вызывает функции на тракте MATLAB, fiaccel пытается скомпилировать эти функции, если вы не объявите их внешними.