-context-sensitivity
)Сохраните информацию о контексте вызова, чтобы идентифицировать вызов функции, который вызвал ошибки
Эта опция влияет только на анализ Code Prover.
Укажите функции, для которых верификация должна хранить контекстную информацию о вызовах. Если функция вызывается несколько раз, использование этой опции помогает вам различать различные вызовы.
Пользовательский интерфейс (только для настольных продуктов): В строении проекта опция доступна на узле Precision.
Командная строка и файл опций: Используйте опцию -context-sensitivity
. См. «Информация о командной строке».
Предположим, что функция вызывается дважды в вашем коде. Цвет проверки для каждой операции в теле функции является комбинированным результатом обоих вызовов. Если необходимо различить цвета двух вызовов, используйте эту опцию.
Например, если функция содержит красный или оранжевый чек и зеленый чек для одной и той же операции для двух различных вызовов, программа объединяет контексты и отображает оранжевый чек для операции. Если вы используете эту опцию, чек становится темно-оранжевым, и детали результата показывают цвет чека для каждого вызова.
Для руководства об использовании этой опции смотрите Идентификация вызова функции с ошибкой времени выполнения.
По умолчанию: none
none
Программное обеспечение не хранит информацию контекста вызова для функций.
auto
Программное обеспечение хранит информацию контекста вызова для сдачи на хранение:
Функции, которые образуют листья дерева вызовов. Эти функции вызываются другими функциями, но не вызывают сами функции.
Малые функции. Программное обеспечение использует внутренний порог, чтобы определить, является ли функция маленькой.
custom
Программное обеспечение хранит контекстную информацию о вызовах для заданных вами функций. Чтобы ввести имя функции, щелкните.
Если вы выбираете эту опцию, вы не видите всплывающие подсказки в теле функций, которые получают выгоду от этой опции (и сохраняете контексты вызова отдельными).
Если вы выберете эту опцию, анализ может показать некоторые операции кода в сером цвете (недоступный код), даже когда вы можете идентифицировать пути выполнения, ведущие к операциям. В этом случае серый код указывает операции, которые могут быть недоступны только в конкретном контексте вызова.
Например, предположим, что эта функция вызывается с аргументами -1 и 1:
int isPositive (int num) { if(num < 0) return 0; return 1; }
Проверка на if
серый, потому что, когда функция вызывается с аргументом -1, if
условие всегда верно.
Проверка кода внутри if
ветвь серая, потому что, когда функция вызывается с аргументом 1, if
условие всегда ложно.
Каждая проверка недоступного кода указывает код, который недоступен только в конкретном контексте вызова. Контекст вызова отображается в подробных данных результата.
Параметр: -context-sensitivity |
Значение:
|
По умолчанию: none |
Пример (Code Prover): Polyspace Code Prover -sources |
Пример (Код Prover Server):
Полипространство -code-prover-server -sources file_name |
Чтобы позволить программному обеспечению определить, какие функции получают хранение контекста вызова, используйте опцию -context-sensitivity-auto
.