ИИ: поиск ошибок в bc

Много наслышан о том, что сейчас некоторые проекты с открытым кодом переживают настоящий шквал заявок от вайбкодеров, едва отбиваясь от некачественного кода и исправлений несуществующих проблем. Впрочем, есть и положительный опыт — я встречал несколько новостей о том, что искусственный интеллект успешно нашёл и исправил какие-то проблемы с безопасностью.

Очень интересно стало — а как ИИ вообще ищет такие проблемы? Ведь все взаимосвязи в коде он, в силу известных ограничений, просмотреть не может, может речь о каких-то распространённых шаблонных уязвимостях? Я как-то глубоко не погружался в тему.

Поэтому решил посмотреть как будет действовать нейросеть «Опус 4.6» на хорошо знакомом мне проекте — калькуляторе bc, работающем в командной строке. Я выбрал версию для «Линукса», так как там меньше кода.

Скриншот терминала: команды bc с огромным scale (2147483647) вызывают «Segmentation fault» и «Fatal error: Out of memory for malloc».

Я написал небольшой промпт, в котором попросил найти мне переполнения стека, ошибки выделения и памяти и прочие проблемы, характерные для программ на Си. Что интересно, такие проблемы нашлись! Но как же «Опус» это сделал?

Ларчик открывался просто — нейросетка подключила к проекту ASan и UBSan — стандартные инструмент для поиска ошибок работы с памятью, знаковых переполнений, деления и ноль и так далее, а после проанализировала их вывод. Никаких чудес.

Комментарии 4

Андрей № 1
А если в промпте явно указать, что надо самостоятельно изучить код проекта и затем самостоятельно найти баги такого-то типа? А из внешних инструментов разрешить использовать утилиты входящие в gcc и т.п.
Евгений Степанищев автор № 3
Ну, если человеку дать такую задачу как он справится? ИИ всё-таки не магическим образом работает.
Андрей № 2
А вообще — мне кажется, что использование ии внешних инструментов для поиска багов в bc — вполне логичным, они же так постоянно делают при разработке чего угодно — юзают уже готовые библиотеки и программы — линтеры, форматеры, статические анализаторы кода, а затем обрабатывают их выхлоп