-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 рассматривает все возможные значения входов для подмножества числовых и статических шашек дефекта памяти и предоставляет примеры значений, которые приводят к обнаруженным дефектам.
Polyspace рассматривает возможные значения системного входа только, если вход ограничен ограничениями в вашем коде, такими как assert
или if
. Анализ не приводит примеров значений, которые приводят к обнаруженным дефектам.
В интерфейсе рабочего стола эта опция включена только при включении Find defects (-checkers)
.
Эта опция игнорируется, если вы включите Use fast analysis mode for Bug Finder (-fast-analysis)
.
Если вы устанавливаете внешние ограничения на глобальные переменные, анализ показывает примеры значений глобальных переменных, вызывающих дефекты только в этих ограничениях. См. Constraint setup (-data-range-specifications)
.
Если вход является указателем p
анализ принимает, что указатель не является null и может быть безопасно удален. Примером значения входа, вызывающего дефект, является значение *p
. Это значение представлено в виде массива на панели Results Details. Например, в этом фрагменте кода:
void func(int* x){
int tmp= *(x+3);
if(1/(tmp-4))
return;
}
*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 |
Пример (Bug Finder Server):
polyspace-bug-finder-server -sources |
Array access out of bounds
| Bitwise operation on negative value
| Consider inputs to these functions (-system-inputs-from)
| Float conversion overflow
| Float division by zero
| Float overflow
| Integer conversion overflow
| Integer division by zero
| Integer overflow
| Invalid use of standard library floating point routine
| Invalid use of standard library integer routine
| Null pointer
| Shift of a negative value
| Shift operation overflow
| Sign change integer conversion overflow
| Unsigned integer conversion overflow
| Unsigned integer overflow