Dynamic Analysis
El análisis dinámico monitoriza el comportamiento de un programa en tiempo de ejecución, detectando problemas como fugas de memoria, carreras y cuellos de botella de rendimiento.
Propósito
Descubrir defectos en ejecución difíciles de detectar para el análisis estático, como fugas de memoria y carreras de datos.
Mecanismo
Ejecuta el programa instrumentado o en sandbox, monitorizando reservas y liberaciones de memoria, intercalados de hilos y tiempos de funciones. Valgrind detecta errores de memoria, AddressSanitizer accesos fuera de rango/UAF y ThreadSanitizer carreras.
Casos de uso
- Detección de fugas de memoria
- Detección de carreras
- Profiling