exponenta event banner

Проверка и исправление функции, не вызываемой проверками

Выполните один или несколько из этих шагов до тех пор, пока не будет определено исправление для проверки Функция не называется. Существует несколько способов исправления этой проверки. Описание проверки и примеры кода см. в разделе Function not called.

Если проверка представляет собой защитный код или функцию, являющуюся частью библиотеки, добавьте комментарий и обоснование в результат или код, объясняя, почему код не был изменен. См. раздел Результаты анализа пространства адресов с помощью исправлений ошибок или обоснований.

Примечание

По умолчанию эта проверка не включена. Чтобы включить эту проверку, необходимо указать соответствующую опцию анализа. Дополнительные сведения см. в разделе Detect uncalled functions (-uncalled-function-checks).

Шаг 1: Интерпретировать информацию о проверке

На панели Список результатов (Results List) выберите флажок. На панели Источник тело функции подсвечивается серым цветом.

Шаг 2: Определение первопричины проверки

  1. Найдите имя функции и проверьте, можно ли найти вызов функции в коде.

    На панели Поиск введите имя функции. В раскрывающемся списке рядом с полем поиска выберите Источник.

    Возможное исправление: Если вызов функции не найден, определите, почему определение функции существует в вашем коде.

  2. При обнаружении вызова функции проверьте, происходит ли это в теле другой функции без вызова.

    Возможное исправление: Узнайте, почему последняя функция не вызывается.

  3. Проверьте, вызывается ли функция косвенно, например, через указатели функций.

    Если индикация слишком глубока, Polyspace ® иногда не может определить, что вызывается определенная функция.

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

Шаг 3: Поиск общих причин проверки

Найдите следующие общие причины проверки функции, не вызываемой.

  • Определите, следует ли вызывать функцию, но вместо этого использовать другую функцию.

  • Определите, требуется ли заменить какой-либо код вызовом функции. Вы написали определение функции, но забыли заменить исходный код вызовом функции.

    Если возникнет такая ситуация, вероятно, у вас будет дубликат кода.

  • Проверьте, хотите ли вы вызвать функцию из еще не написанного кода. Если да, сохраните определение функции.

  • Для кода, предназначенного для многозадачности, см., были ли указаны все функции точки входа.

    Чтобы просмотреть параметры, используемые для результата, выберите ссылку Конфигурация представления для результатов на панели Панель мониторинга.

    Дополнительные сведения см. в разделе Tasks (-entry-points).

  • Для получения информации о коде, предназначенном для многозадачности, см. main функция содержит бесконечный цикл. Prover™ кода Polyspace требует, чтобы main функция должна завершить выполнение до начала других точек входа.

    Дополнительные сведения см. в разделе Настройка многозадачного анализа в многозадачном пространстве вручную.