Окно в терминальной стадии

PVS-Studio разобрал код Windows Terminal (коммит fc0a06c) и показал, как статический анализ помогает на реальном «пользовательском» проекте: терминал, пришедший на смену узлу консоли в Windows 11 22H2 (доступен и с Windows 10 2004+), с Direct3D, Quake-режимом и шрифтом Cascadia Mono. Автор оформил воспроизводимый пайплайн: установка PVS-Studio 7.37 (GUI/CLI), WinGet-конфигурация, сборка в Release, исключения «шума» через wt.pvsconfig и плагин для Visual Studio 2022.

Найдены показательные дефекты:

  • С# юнит-тесты: перезапись параметров (V3061), риск NRE в Equals (V3115), «мёртвые» булевы флаги после SetConsoleMode (V3137).
  • C++: разыменование end() у std::map (UB, V783), возможное разыменование nullptr после проверки (V1004), небезопасный static_cast при работе с COM вместо QueryInterface (V1114), лишние присваивания флагу переноса строки (V519), бессмысленная проверка new[] на nullptr (V668).

Вывод: даже зрелый проект с открытым кодом выигрывает от статанализа — дефекты в тестах, UIA-слое и вспомогательных модулях выявляются быстрее; процесс легко автоматизируется (CLI, GitHub Actions), а лицензирование узла консоли под MIT упрощает аудит.

Ключевые инсайты из новости (по версии ChatGPT)
  • Статанализ в CI по pull-request: PVS-Studio можно запускать в CLI-режиме по каждому PR и сохранять артефакты отчётов (.plog/.json). Это снижает «время жизни» дефектов и масштабируется на любые наши open-source/внутренние репозитории (HBTracker, LibTracker, WebAdsSpy).
    [процесс]
Для получения полного доступа оформите подписку PubMag PRO.
Зарегистрированные пользователи видят только два тезиса.
Зарегистрироваться
Инсайты автоматически генерируются с помощью искусственного интеллекта на основе текста статьи.
← Назад в лентуЧитать оригинал →
✈️ Подписывайтесь на мой Telegram-канал — там еще больше интересного про AdTech, MarTech, AI и многое другое!