Поиск модификаций коллекции во время её перечисления в исходном коде на языке C# методами статического анализа


Поиск модификаций коллекции во время её перечисления в исходном коде на языке C# методами статического анализа

Ханевская К.А. (ИСП РАН, Москва, Россия; МФТИ, Московская. обл., Россия)
Тяжкороб У.В. (ИСП РАН, Москва, Россия; МФТИ, Московская. обл., Россия)
Игнатьев В.Н. (ИСП РАН, Москва, Россия; МГУ, Москва, Россия)

Аннотация

Статья посвящена разработке метода выявления ошибок модификации коллекций во время их перечисления в языке C#. Подобные ошибки приводят к исключению InvalidOperationException и аварийному завершению программы во время выполнения. Предлагаемое решение реализовано в рамках промышленного статического анализатора SharpChecker и использует межпроцедурный символьный анализ, чувствительный к потоку управления и путям выполнения. Детектор отслеживает как прямые изменения коллекций в цикле foreach, так и модификации, происходящие через цепочки вызовов методов. Тестирование на проектах с открытым исходным кодом показало точность около 69%. Результаты демонстрируют эффективность подхода для обнаружения сложных случаев модификации коллекций.

Ключевые слова

статический анализ; символьное выполнение; поиск ошибок; модификация коллекции; перечисление коллекции.

Издание

Труды Института системного программирования РАН, том 38, вып. 3, часть 1, 2026, стр. 129-142.

ISSN 2220-6426 (Online), ISSN 2079-8156 (Print).

DOI: 10.15514/ISPRAS-2026-38(3)-7

Для цитирования

Ханевская К.А., Тяжкороб У.В., Игнатьев В.Н. Поиск модификаций коллекции во время её перечисления в исходном коде на языке C# методами статического анализа. Труды Института системного программирования РАН, том 38, вып. 3, часть 1, 2026, стр. 129-142. DOI: 10.15514/ISPRAS-2026-38(3)-7.

Полный текст статьи в формате pdf Вернуться к содержанию тома