Dynamic Analysis
動的解析はプログラムの実行時挙動を監視し、メモリリーク、競合、パフォーマンスボトルネックなどの実行時問題を検出する。
目的
メモリリーやデータ競合など、静的解析では検出困難な実行時欠陥を発見する。
メカニズム
プログラムを計装またはサンドボックス化して実行し、メモリの確保/解放、スレッドの交錯、関数の所要時間を監視する。Valgrind はメモリエラーを、AddressSanitizer は境界外アクセス/UAF を、ThreadSanitizer は競合を検出する。
ユースケース
- メモリリーク検出
- レース条件の検出
- プロファイリング