Dynamic Analysis
Die dynamische Analyse überwacht das Laufzeitverhalten eines Programms und erkennt Laufzeitprobleme wie Speicherlecks, Datenrennen und Performance-Engpässe.
Zweck
Laufzeitdefekte aufdecken, die der statischen Analyse schwerfallen, etwa Speicherlecks und Datenrennen.
Mechanismus
Das Programm läuft instrumentiert oder in einer Sandbox, wobei Speicher-Allokation und -Freigabe, Thread-Verzahnung und Funktionszeiten überwacht werden. Valgrind findet Speicherfehler, AddressSanitizer Out-of-Bounds/UAF, ThreadSanitizer Datenrennen.
Anwendungsfälle
- Speicherleck-Erkennung
- Rennerkennung
- Profiling