Мемоизация абстракций блоков для символьных графов памяти
Аннотация
В рамках инструмента статической верификации программ CPAchecker рассматриваются анализ на основе символьных графов памяти (SMG) и метод мемоизации абстракций блоков (BAM), позволяющий использовать резюме процедур. SMG анализ моделирует память программы в виде графа с рёбрами между объектами в памяти и символьными значениями. С помощью этого анализа были найдены ошибки работы с памятью в драйверах операционной системы Linux. BAM позволяет, используя произвольный статический анализ, получить резюме блока (тела функции или цикла) и использовать это резюме снова, когда анализ входит в тот же блок с достаточно схожим контекстом. В этой статье представлен ряд вариантов операторов BAM, необходимых для работы этого метода с анализом SMG. Варианты различаются по точности захватываемого контекста. Использование BAM позволило анализу получить более 50 вердиктов, но привело к потере 25 вердиктов на 845 модулях драйверов.
Ключевые слова
Издание
Труды Института системного программирования РАН, том 38, вып. 5, 2026, стр. 337-350.
ISSN 2220-6426 (Online), ISSN 2079-8156 (Print).
DOI: 10.15514/ISPRAS-2026-38(5)-19
Для цитирования
Полный текст статьи в формате pdf (на английском)
Вернуться к содержанию тома