Смотрите и исправьте функции, не вызываемые проверки

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

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

Примечание

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

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

На панели Results List выберите проверку. На Source панели тело функции подсвечивается серым цветом.

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

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

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

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

  2. Если вы находите вызов функции, посмотрите, происходит ли он в теле другой незакрытой функции.

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

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

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

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

Шаг 3: Проверьте общие причины проверки

Проверьте следующие общие причины проверки Function not called.

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

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

    Если эта ситуация происходит, у вас, вероятно, будет повторяющийся код.

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

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

    Чтобы увидеть опции, используемые для результата, выберите View configuration for results ссылки на панели Dashboard.

    Для получения дополнительной информации смотрите Tasks (-entry-points).

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

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