exponenta event banner

Провести более строгие проверки с учетом всех значений системных входов (-checks-using-system-input-values)

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

Описание

Этот параметр влияет только на анализ Bug Finder.

Эта опция недоступна для кода, сгенерированного в моделях MATLAB ® или Simulink ®.

Включите более строгий статический анализ для подмножества числовых и статических проверок дефектов памяти. Polyspace ® учитывает все возможные значения системных входов и предоставляет примеры значений, которые могут привести к обнаруженным дефектам. Для каждой функцииfoo который вы указываете с помощью Consider inputs to these functions (-system-inputs-from), это системные входы.

  • Каждый аргумент foo.

  • Каждое считывание глобальной переменной по foo или один из его вызывающих абонентов.

    Для main() функция, анализ предполагает, что глобальные переменные инициализируются со значением 0.

  • Каждое считывание изменчивой переменной с помощью foo или один из его вызывающих абонентов.

  • Каждый возврат упорной функции. анализ Bug Finder блокирует функцию, если тело функции не указано в исходном коде.

Более строгие проверки включены для этого подмножества проверок дефектов.

 Подмножество дефектных шашек

Примеры значений, которые приводят к обнаруженным дефектам, можно просмотреть в столбце События (Events) панели Сведения о результатах (Results Details) интерфейса рабочего стола или веб-интерфейса Polyspace Access.

Задать опцию

Пользовательский интерфейс (только для настольных ПК): На панели Конфигурация (Configuration) этот параметр находится в узле Анализ ошибок (Bug Finder Analysis). Другие параметры, которые также необходимо включить, см. в разделе Зависимости.

файл командной строки и параметров: Использовать параметр -checks-using-system-input-values. См. раздел Сведения о командной строке.

Зачем использовать этот параметр

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

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

Настройки

На

Polyspace рассматривает все возможные значения системных входов для подмножества числовых и статических проверок дефектов памяти и предоставляет примеры значений, которые приводят к обнаруженным дефектам.

Выкл. (по умолчанию)

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

Зависимости

Совет

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

  • Если вход является указателем pанализ предполагает, что указатель не имеет значения NULL и может быть безопасно удален. Примерным значением ввода, вызывающего дефект, является значение *p. Это значение представлено в виде массива на панели Сведения о результатах. Например, в этом фрагменте кода:

    void func(int* x){
    	int tmp= *(x+3);
    	
    	if(1/(tmp-4))
    		return;
    }
    Пример значения ввода, вызывающего дефект: {0,0,0,4}, где массив представляет *x, *(x+1), *(x+2), и *(x+3). Стоимость *(x+3)=4 вызывает деление на ноль.

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

    • getchar

    • getc

    • fgetc

    • scanf

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

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

Параметр: -checks-using-system-input-values
По умолчанию: Откл.
Пример (поиск ошибок): polyspace-bug-finder -sources file_name -checkers numerical,static_memory -checks-using-system-input-values
Пример (сервер поиска ошибок): polyspace-bug-finder-server -sources file_name -checkers numerical,static_memory -checks-using-system-input-values
Представлен в R2020a