Sensitivity context (-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
Значение: function1[, function2,...]
По умолчанию: none
Пример (Code Prover): Polyspace Code Prover -sources file_name -контекст- чувствительность myFunc1,myFunc2
Пример (Код Prover Server): Полипространство -code-prover-server -sources file_name -контекст- чувствительность myFunc1,myFunc2

Чтобы позволить программному обеспечению определить, какие функции получают хранение контекста вызова, используйте опцию -context-sensitivity-auto.