Обеспечьте контекст для верификации кода С++

Этот пример показывает, как предоставить контекст вашей верификации Кода С++. Если вы используете опции по умолчанию и не обеспечиваете функцию main, Polyspace® Code Prover™ проверяет ваш код на робастность против всех условий верификации. Например, программное обеспечение:

  • Полагает, что глобальные переменные и входные параметры невостребованных функций и методов являются полным спектром.

  • Генерирует main, который вызывает невостребованные функции в произвольном порядке.

Кроме того, если вы не задаете функцию, но объявляете и вызываете ее в вашем коде, Polyspace блокирует функцию. Для подробного списка предположений смотрите Аналитические Предположения Программы автоматического доказательства Кода.

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

Область значений контрольной переменной

Используйте следующие опции. В пользовательском интерфейсе десктопных решений Polyspace опции появляются под узлом Code Prover Verification.

ОпцияЦель
Variables to initialize (-main-generator-writes-variables)Задайте глобальные переменные, которые Polyspace не должен рассматривать, как инициализировано несмотря ни на какую явную инициализацию в коде.
Constraint setup (-data-range-specifications)Задайте область значений для глобальных переменных.

Последовательность вызова функции управления

  1. Используйте следующие опции, чтобы вызвать методы класса. В пользовательском интерфейсе десктопных решений Polyspace опции появляются под узлом Code Prover Verification.

    ОпцияЦель
    Class (-class-analyzer)Задайте классы, методы которых сгенерированный main должен вызвать.
    Functions to call within the specified classes (-class-analyzer-calls)Задайте методы, которые должен вызвать сгенерированный main.
    Analyze class contents only (-class-only)Укажите, что сгенерированный main должен вызвать методы класса только.
    Skip member initialization check (-no-constructors-init-check)Укажите, что сгенерированный main не должен проверять, инициализирует ли каждый конструктор класса все члены класса.
  2. Используйте следующие опции, чтобы вызвать функции, которые не являются методами класса. В пользовательском интерфейсе десктопных решений Polyspace опции появляются под узлом Code Prover Verification.

    ОпцияЦель
    Initialization functions (-functions-called-before-main)Задайте функции, которые сгенерированный main должен вызвать сначала.
    Functions to call (-main-generator-calls)Задайте функции, которые сгенерированный main должен вызвать позже.

Похожие темы