Для удобства дефектные средства проверки в Средстве поиска Ошибки классифицируются в различные группы.
В определенных проектах можно принять решение фокусироваться только на определенных группах дефектов. Задайте название группы для опции Find defects (-checkers)
.
При рассмотрении результатов можно рассмотреть все результаты определенной группы вместе. Отфильтруйте другие результаты во время анализа. Смотрите Результаты Фильтра и Группы.
Эта тема дает обзор различных групп.
Эти дефекты связаны с многозадачным кодом.
Дефекты гонки данных происходят, когда несколько задач работают с совместно используемой переменной или вызывают неповторно используемую стандартную библиотечную функцию без защиты.
Для определенных дефектов смотрите Дефекты Параллелизма.
Параметр командной строки:
concurrency
Дефекты блокировки происходят, когда критические разделы не настраиваются соответственно. Например:
Критические разделы вовлечены в мертвую блокировку.
Функция блокировки не имеет соответствия, разблокировали функцию.
Функция блокировки вызвана дважды без промежуточного вызова разблокировать функции.
Критические разделы защищают совместно используемые переменные от параллельного доступа. Polyspace® ожидает, что критические разделы будут следовать за определенным форматом. Критический раздел должен находиться между вызовом функции блокировки и вызовом разблокировать функции.
Для определенных дефектов смотрите Дефекты Параллелизма.
Параметр командной строки:
concurrency
Эти дефекты связаны с неправильным использованием стандартных программ криптографии от библиотеки OpenSSL. Например:
Использование криптографически слабых алгоритмов
Отсутствие существенных элементов, таких как шифр ключевой или вектор инициализации
Неправильный порядок криптографических операций
Для определенных дефектов смотрите Дефекты Криптографии.
Параметр командной строки:
cryptography
Эти дефекты являются ошибками, относящимися, как информация перемещается в вашем коде. Дефекты включают:
Мертвый или недостижимый код
Неиспользованный код
Неинициализированная информация
Для определенных дефектов смотрите Дефекты Потока данных.
Параметр командной строки:
data_flow
Эти дефекты являются ошибками, относящимися к использованию памяти, когда память динамически выделяется. Дефекты включают:
Освобождение динамически выделенной памяти
Незащищенные выделения памяти
Для определенных дефектов смотрите Дефекты Динамической памяти.
Параметр командной строки:
dynamic_memory
Эти дефекты позволяют вам наблюдать хорошие методы кодирования. Дефекты собой не могут вызвать катастрофический отказ, но они иногда подсвечивают более серьезные логические ошибки в вашем коде. Дефекты также делают ваш код уязвимым для нападений и трудно обеспечить.
Дефекты включают:
Трудно закодированные константы, такие как buffer size и контур цикла
Неиспользованные параметры функции
Для определенных дефектов смотрите Хорошие Дефекты Практики.
Параметр командной строки:
good_practice
Эти дефекты являются ошибками, относящимися к переменным в вашем коде; их значения, типы данных и использование. Дефекты включают:
Математические операции
Переполнение преобразования
Операционное переполнение
Для определенных дефектов смотрите Числовые Дефекты.
Параметр командной строки:
numerical
Эти дефекты связаны с объектно-ориентированным аспектом программирования на C++. Дефекты подсвечивают проблемы проекта класса или проблемы в иерархии наследования.
Дефекты включают:
Элемент данных, не инициализированный или неправильно инициализированный в конструкторе
Неправильное переопределение методов базового класса
Повреждение скрытия данных
Для определенных дефектов смотрите Объектно-ориентированные Дефекты.
Параметр командной строки:
object_oriented
Эти дефекты обнаруживают проблемы, такие как ненужные копии данных и неэффективные стандартные функции C++, которые могут привести к узким местам производительности в Коде С++.
Дефекты включают:
const
параметры или возвращаемые значения, обеспечивающие копию вместо операций пересылки
Неэффективные функции для вставки новой строки и расчета длины строки
Для определенных дефектов смотрите Дефекты Производительности.
Параметр командной строки:
performance
Эти дефекты являются ошибками, относящимися к программированию синтаксиса. Эти дефекты включают:
Присвоение по сравнению с операторами равенства
Несоответствия между переменными спецификаторами или объявлениями
Плохо отформатированные строки
Для определенных дефектов смотрите Дефекты Программирования.
Параметр командной строки:
programming
Эти дефекты связаны с обработкой файла. Дефекты включают:
Открытый поток файла
Операции на потоке файла после того, как это закрывается
Для определенных дефектов смотрите Дефекты управления ресурсами.
Параметр командной строки:
resource_management
Эти дефекты являются ошибками, относящимися к использованию памяти, когда память статически выделяется. Дефекты включают:
Доступ к массивам вне их границ
Нулевые указатели
Кастинг указателей
Для определенных дефектов смотрите Дефекты Статического ЗУ.
Параметр командной строки:
static_memory
Эти дефекты подсвечивают места в вашем коде, которые уязвимы для взламывания или других нападений безопасности. Многие из этих дефектов не вызывают ошибки периода выполнения, но вместо этого указывают на опасные области в вашем коде. Дефекты включают:
Уязвимые данные управления
Используя опасные или устаревшие функции
Генерация случайных чисел
Внешне управляемые пути и команды
Для получения дополнительной информации об определенных дефектах, смотрите Дефекты безопасности.
Параметр командной строки:
security
Эти дефекты подсвечивают элементы в вашем коде, которые являются из необеспеченных источников. Злонамеренные атакующие могут использовать входные данные или пути, чтобы напасть на вашу программу и отказы причины. Эти дефекты подсвечивают элементы в вашем коде, которые уязвимы. Дефекты включают:
Использование испорченных переменных или указателей
Внешне управляемые пути
Для получения дополнительной информации об определенных дефектах, смотрите Испорченные Дефекты Данных.
Параметр командной строки:
tainted_data