|Variable accessible between load and store operations|
|Variable can be modified between accesses|
|Task performs lengthy operation while holding a lock|
|Multiple tasks perform unprotected nonatomic operations on shared variable|
|Multiple tasks perform unprotected operations on shared variable|
|Multiple tasks make unprotected calls to thread-unsafe standard library function|
|Call sequence to lock functions cause two tasks to block each other|
|Task tries to destroy a mutex in the locked state|
|Lock function is called twice in a task without an intermediate call to unlock function|
|Unlock function is called twice in a task without an intermediate call to lock function|
|Loop checks failure condition after possible spurious failure|
|Loop checks wake-up condition after possible spurious wake-up|
|Unlock function without lock function|
|Lock function without unlock function|
|Program with multiple threads uses signal function|
|Dynamically allocated thread-specific memory not freed before end of thread|
|Uncaught signal kills entire process instead of specific thread|
The Bug Finder defect checkers are classified into groups such as data flow, concurrency, numerical, and so on.
Detect data races or deadlocks, or see a comprehensive analysis of shared variable usage.
Protect shared variables using critical section, temporal exclusion, priorities or interrupt disabling.