Возможно ли это и как?
Я тестирую этот простой фрагмент из документации msvc:
Код: Выделить всё
// from https://learn.microsoft.com/fr-fr/cpp/sanitizers/error-stack-use-after-return?view=msvc-170
volatile char* x;
void foo() {
char stack_buffer[42];
x = &stack_buffer[13];
}
int main() {
foo();
*x = 42; // ERROR: AddressSanitizer: stack-use-after-scope
return (*x == 42);
}
Я использую флаги компиляции /fsanitize=address /fsanitize-address-use-after-return.
Примечание:
Проблема связана именно с использованием дезинфицирующего средства msvc в компиляторе-проводнике, а не с обнаружением конкретной проблемы с ним. Таким образом, VisualStudio - Address Sanitizer - ASAN - не предупреждать об утечке памяти - это не обман.
Подробнее здесь: https://stackoverflow.com/questions/798 ... r-explorer
Мобильная версия