Functions to stub (-functions-to-stub)

Задайте функции, которые будут заглушены во время анализа

Описание

Задайте функции, которые будут заглушены во время анализа.

Для заданных функций Polyspace® :

  • Игнорирует определение функции, даже если оно существует.

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

Задать опцию

Пользовательский интерфейс (только для настольных продуктов): В строении проекта опция находится на узле Inputs & Stubbing.

Командная строка и файл опций: Используйте опцию -functions-to-stub. См. «Информация о командной строке».

Зачем использовать эту опцию

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

Для образца:

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

  • Предположим, что анализ тела функции неточен. Анализ принимает, что функция возвращает все возможные значения, которые позволяет тип возврата функции. Можно использовать эту опцию, чтобы заглушить функцию и затем задать ограничения на ее возвращаемое значение.

Настройки

По умолчанию нет

Введите имена функции или выберите из списка.

  • Щелкните, чтобы добавить поле и ввести имя функции.

  • Щелкните, чтобы отобразить функции в коде. Выберите функции из списка.

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

//simple function

void test(int a, int b);

//C++ template function

Template <class myType>
myType test(myType a, myType b);

//C++ class method

class A {
	public:
	int test(int var1, int var2);
};


//C++ template class method

template <class myType> class A
{
	public:
	myType test(myType var1, myType var2);
};

Тип функцииОсновной синтаксисСинтаксис аргумента
Простая функцияtesttest(int; int)
Функция шаблона C++testtest(myType; myType)
Метод класса C++A::testA::test(int;int)
Метод класса шаблона C++A<myType>::testA<myType>::test(myType;myType)

Совет

  • Code Prover делает предположения о аргументах и возвращаемых значениях упрямых функций. Для примера Polyspace принимает, что возвраты значения упрямых функций полны области значений. Эти допущения могут повлиять на проверки в других разделах кода. См. Допущения об упрямых функциях.

  • Если вы заглушили функцию, можно ограничить область значений аргументов функции и возвращаемое значение. Чтобы задать ограничения, используйте опцию анализа Constraint setup (-data-range-specifications).

  • Для функций C разрешены эти специальные символы: ( ) < > ; _

    Для функций C++ допускаются следующие специальные символы: ( ) < > ; _ * & [ ]

    Пробельные символы разрешены для C++, но не разрешены для функций C.

Информация о командной строке

Параметр: -functions-to-stub
По умолчанию нет
Значение: function1[, function2[,...]]
Пример (Code Prover): Polyspace Code Prover -sources file_name -функции-к-заглушке function_1,function_2
Пример (Код Prover Server): Полипространство -code-prover-server -sources file_name -функции-к-заглушке function_1,function_2