exponenta event banner

Нарушения стандартов кодирования не отображаются

Проблема

Ожидается нарушение правила кодирования в строке кода, но анализ Polyspace ® не показывает нарушение.

Возможная причина: проверка правил не включена

Возможно, вы ищете сокращенное подмножество правил кодирования.

Например, при проверке правил MISRA C ®: 2012 по умолчанию выполняется поиск mandatory-required только подмножество.

Решение

Проверьте используемые параметры правил кодирования. См.:

Возможная причина: нарушения правил в файлах заголовков

Все нарушения правил кодирования в файле могут быть подавлены.

Например, по умолчанию нарушения правил кодирования подавляются из заголовочных файлов, которые находятся не в том же расположении, что и исходные файлы.

Решение

Проверьте файлы, в которых подавляются нарушения правил кодирования. Посмотрите Do not generate results for (-do-not-generate-results-for).

Возможная причина: нарушения правил в макросах

Нарушение правила происходит при расширении макроса. Чтобы избежать многократного просмотра одного и того же нарушения, нарушение отображается в определении макроса вместо использования макроса. Если определение находится в файле заголовка, оно может быть подавлено результатами.

На панели «Источник» можно определить, содержит ли строка расширение макроса. Ищите значок.

Решение

Найдите определение макроса и проверьте, есть ли оно в файле заголовка. Определите, подавляются ли нарушения правил кодирования из файлов заголовков. Посмотрите Do not generate results for (-do-not-generate-results-for).

Возможная причина: ошибки компиляции

Если какой-либо исходный файл в анализе не компилируется, проверка правил кодирования будет неполной. Результаты проверки правил кодирования:

  • Может не содержать полных результатов для файлов, которые не были скомпилированы

  • Может не содержать полных результатов для файлов, которые были скомпилированы, поскольку некоторые правила проверяются только после завершения компиляции

Проверьте наличие ошибок компиляции. См. раздел Просмотр информации об ошибках при остановке анализа.

Примечание

При включении мастера компиляции и проверки правил кодирования программное обеспечение не сообщает о нарушениях правил кодирования при наличии ошибок компиляции.

Возможная причина: Анализ проверки кода с более низким уровнем проверки

При выполнении анализа программы проверки кода для проверки соответствия источника с помощью опции Verification level (-to) (Polyspace Code Prover), вы можете не видеть нарушений некоторых правил. Эти правила проверяются на более поздних этапах анализа проверки кода.

Это рассуждение относится к определенным правилам и не относится к анализу Bug Finder. См. раздел Проверка нарушений стандартов кодирования.

Решение

Если вы не видите нарушения одного из этих правил, проверьте, выполняется ли анализ программы проверки кода (Code Prover) только для проверки соответствия исходным данным. Использовать более высокое значение для параметра Verification level (-to)(Доказательство кода Polyspace).