exponenta event banner

Пометить устаревшие или небезопасные функции с помощью средств поиска ошибок

В этом разделе показано, как создать пользовательский список функций и проверить использование этих функций в коде с помощью программы Polyspace ® Bug Finder™.

Определить необходимость расширения средства проверки

Прежде чем создавать или расширять средство проверки, определите, соответствует ли существующее средство проверки вашим требованиям. Эти шашки помечают использование определенных функций:

Однако может потребоваться включить в черный список функции, на которые не распространяется существующая проверка. Например, может потребоваться запретить использование функций обработки сигналов, таких как std::signal:

#include <csignal>
#include <iostream>

namespace
{
  volatile std::sig_atomic_t gSignalStatus;
}

void signal_handler(int signal)
{
  gSignalStatus = signal;
}

int main()
{
  // Install a signal handler
  std::signal(SIGINT, signal_handler);

  std::cout << "SignalValue: " << gSignalStatus << '\n';
  std::cout << "Sending signal " << SIGINT << '\n';
  std::raise(SIGINT);
  std::cout << "SignalValue: " << gSignalStatus << '\n';
}

Расширенная проверка

Если функции, которые вы хотите внести в черный список, не охвачены вышеуказанными чекерами, используйте средство проверки Use of a forbidden function. Чтобы создать черный список для проверки, выполните следующие действия.

  1. Перечисление функций в XML-файле в определенном синтаксисе.

    Копирование файла шаблона code-behavior-specifications-template.xml из папки polyspaceroot\polyspace\verifier\cxx в доступное для записи расположение и измените файл. Введите каждую функцию в файл, используя следующий синтаксис после существующих аналогичных записей:

    <function name="funcname">
        <behavior name="FORBIDDEN_FUNC"/>
    </function>
    где funcname - имя функции, которую требуется внести в черный список. Удалите ранее существующие записи в файле, чтобы избежать предупреждений.

  2. Укажите этот XML-файл в качестве аргумента для параметра -code-behavior-specifications.

Шашки, которые можно расширить

Единственным средством проверки, которое можно использовать для включения указанных функций в черный список, является средство проверки Use of a forbidden function.

См. также

|

Связанные темы