Кодирование стандартных нарушений, не отображенных

Проблема

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

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

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

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

Решение

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

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

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

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

Решение

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

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

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

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

Решение

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

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

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

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

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

Проверяйте на ошибки компиляции. Информация об Ошибке Вида на море, Когда Аналитические Остановки.

Примечание

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

Возможная причина: анализ программы автоматического доказательства кода с более низким уровнем верификации

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

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

Решение

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