Диагностируйте, почему кодирующие стандартные нарушения не появляются как ожидалось

Проблема

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

Возможная причина: управляйте средством проверки, не Enabled

Вы можете включить уменьшаемое подмножество кодирования правил.

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

Решение

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

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

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

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

Решение

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

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

Нарушение правила происходит в макрорасширении. Когда нарушение правила происходит в макроопределении, Polyspace показывает результат только однажды в самом определении а не на каждом экземпляре макроса (если нарушение правила не происходит явным образом из-за макро-параметров в определенном экземпляре). Если определение происходит в заголовочном файле, оно может быть подавлено от результатов. См. также Результаты Polyspace в Линиях, Содержащих Макросы.

На панели 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).