Atomic load and store sequence not atomic | Переменная, доступная между загрузкой и операциями хранилища |
Atomic variable accessed twice in an expression | Переменная может быть изменена между доступами |
Blocking operation while holding lock | Задача выполняет долгую операцию при содержании блокировки |
Data race | Несколько задач выполняют незащищенные неатомарные операции на совместно используемой переменной |
Data race including atomic operations | Несколько задач выполняют незащищенные операции на совместно используемой переменной |
Data race through standard library function call | Несколько задач выполняют незащищенные вызовы к небезопасной потоком стандартной библиотечной функции |
Deadlock | Вызовите последовательность, чтобы заблокировать причину функций две задачи блокировать друг друга |
Destruction of locked mutex | Задача пытается уничтожить взаимное исключение в заблокированном состоянии |
Double lock | Функция блокировки вызвана дважды в задаче без промежуточного вызова, чтобы разблокировать функцию |
Double unlock | Разблокируйте функцию, называется дважды в задаче без промежуточного вызова, чтобы заблокировать функцию |
Function that can spuriously fail not wrapped in loop | Цикл проверяет условие отказа после возможного побочного отказа |
Function that can spuriously wake up not wrapped in loop | Цикл проверяет условие пробуждения после возможного побочного пробуждения |
Missing lock | Разблокируйте функцию без функции блокировки |
Missing unlock | Функция блокировки без разблокировала функцию |
Signal call in multithreaded program | Программа с несколькими потоками использует функцию сигнала |
Thread-specific memory leak | Динамически выделенная специфичная для потока память, не освобожденная перед концом потока |
Use of signal killing thread | Непойманный сигнал уничтожает целый процесс вместо определенного потока |
Группы дефекта средства поиска ошибки
Средства проверки дефекта Средства поиска Ошибки классифицируются в группы, такие как поток данных, параллелизм, числовой, и так далее.
Анализируйте многозадачные программы в Polyspace
Обнаружьте гонки данных или мертвые блокировки, или смотрите всесторонний анализ использования совместно используемой переменной.
Меры защиты для совместно используемых переменных в многозадачном коде
Защитите совместно используемые переменные с помощью критического раздела, временного исключения, приоритетов или запрета прерываний.