Поиск модификаций коллекции во время её перечисления в исходном коде на языке 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
Для цитирования
Полный текст статьи в формате pdf
Вернуться к содержанию тома