Окно в терминальной стадии
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 упрощает аудит.
Читайте также
MVVM для курильщика: почему ваша ViewModel — это помойка на 2000 строк и как это исправить
Что дал переход на zsh мне, как разработчику?
Ролевой контроль в приложении: варианты реализации
Автоматизируем простые задачи с помощью PowerShell
Заглянуть под капот ИИ-агентов: новый инструмент раскрывает «магию» Claude Code
- Статанализ в CI по pull-request: PVS-Studio можно запускать в CLI-режиме по каждому PR и сохранять артефакты отчётов (.plog/.json). Это снижает «время жизни» дефектов и масштабируется на любые наши open-source/внутренние репозитории (HBTracker, LibTracker, WebAdsSpy).
[процесс]
Зарегистрированные пользователи видят только два тезиса.
Зарегистрироваться