exponenta event banner

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

Проблема

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

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

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

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

Решение

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

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

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

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

Решение

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

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

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

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

Решение

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

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

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

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

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

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

Примечание

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

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

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

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

Решение

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