Вчера сотрудники 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.
Kobalt_x
Означает ли это отказ от win verifier?
В части проверок памяти
kITerE Автор
Хороший вопрос. Возможно оставят два механизма проверок.
kITerE Автор
Мои предположения о двух независимых инструментах косвенно подтвердились:
https://devblogs.microsoft.com/cppblog/addresssanitizer-asan-for-windows-with-msvc/#comment-590