exponenta event banner

Проверка приложения C без main Функция

Для проверки Polyspace ® необходимо, чтобы код имел main функция. Можно выполнить одно из следующих действий.

  • Предоставить main функция в коде.

  • Укажите, что Polyspace должен генерировать main.

Произвести main Функция

Перед проверкой укажите один из следующих параметров. В пользовательском интерфейсе настольных продуктов Polyspace параметры отображаются в узле Проверка проверочного кода.

ВыборОписание
Verify whole application

Проверка прекращается, если программное обеспечение не обнаруживает main.

Verify module or library (-main-generator)

Перед проверкой Polyspace проверяет, содержит ли код main функция.

Если main функция существует, программное обеспечение использует, что main. В противном случае программное обеспечение генерирует main используя указанные параметры:

Запись вручную main Функция

Во время автоматического main генерация, программное обеспечение делает определенные предположения относительно последовательности вызова функции или поведения глобальных переменных. Например, автоматически генерируется значение по умолчанию main моделирует следующее поведение:

  • Функции, заданные с помощью опции Functions to call (-main-generator-calls) может вызываться в произвольном порядке.

  • В начале каждого тела функции глобальные переменные могут иметь полный диапазон значений, допустимых их типом.

Для обеспечения более точной модели последовательности вызовов можно вручную записать main функция для целей проверки. Вы можете добавить это main в отдельном файле для проекта. В некоторых случаях обеспечение точной последовательности вызовов может уменьшить количество проверок оранжевого цвета. Например, в следующем коде Polyspace предполагает, что f и g может вызываться в любом порядке. Поэтому возникает оранжевое переполнение для случая, когда f вызывается до g. Если вы знаете, что f вызывается после g, вы можете написать main для моделирования этой последовательности.

static char x;
static int y;

void f(void)
{
    y = 300;
}

void g(void)
{
    x = y; 
}

 Пример 1: main Вызов одной функции перед другой

 Пример 2: main Вызов одной функции 10 раз раньше другой

Связанные темы