Run stricter checks considering all values of system inputs (-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 на интерфейсе рабочего стола или веб-интерфейсе Доступ.

Задать опцию

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

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

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

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

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

Настройки

На

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

Off (по умолчанию)

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

Зависимости

Совет

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

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

    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

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

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

Параметр: -checks-using-system-input-values
По умолчанию: Off
Пример (Bug Finder): Polyspace Bug Finder -sources file_name -checkers numerical,static_memory значения
Пример (Bug Finder Server): polyspace-bug-finder-server -sources file_name -checkers numerical,static_memory значения
Введенный в R2020a