Вчера сотрудники Microsoft представили поддержку AddressSanitizer (ASan) для C++ в Visual Studio 2019 версии 16.4. ASan — это быстрый детектор ошибок памяти, который может обнаруживать проблемы во время выполнения: обращение к памяти после освобождения (use-after-free), выход за границы выделенного блока (out of bounds).
Для интеграции ASan были внесены следующие изменения:
- Среда выполнения (runtime) ASan'а была адаптирована для работы с бинарными файлами Windows
- Компилятор MSVC теперь может инструментировать собираемые модули проверками ASan
- Сборки средствами MSBuild и CMake обновлены для поддержки ASan
- Отладчик Visual Studio умеет распознавать и интерпретировать ошибки обнаруживаемые проверками ASan
- ASan можно установить инсталлятором Visual Studio в рамках C++ Desktop
Технические подробности и особенности можно узнать в оригинальном посте Microsoft.