Устаревшие или небезопасные функции с использованием Bug Finder Checkers

В этом разделе показано, как создать пользовательский список функций и проверить на использование этих функций в коде с помощью 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.

См. также

|

Похожие темы