Dynamic Analysis
Dynamic analysis monitors a program's behavior at runtime, detecting runtime issues such as memory leaks, races, and performance bottlenecks.
Purpose
Discover runtime defects that static analysis struggles to detect, such as memory leaks and data races.
Mechanism
Runs the program instrumented or sandboxed, monitoring memory allocation/free, thread interleaving, and function timing. Valgrind detects memory errors, AddressSanitizer detects out-of-bounds/UAF, and ThreadSanitizer detects races.
Use cases
- Memory leak detection
- Race detection
- Profiling