может ли Valgrind обнаружить недопустимое чтение для переменной стека - PullRequest
0 голосов
/ 09 апреля 2020

Я написал небольшой код, чтобы убедиться, что Valgrind может обнаружить недопустимое чтение, похоже, он его не обнаружил. это можно сделать?

int a[2];
printf("test %d", a[100]);

если обменять массив для динамического размещения, то Valgrind работает нормально. (неверное чтение размера 4)

1 Ответ

0 голосов
/ 11 апреля 2020

valgrind --tool = memcheck (инструмент по умолчанию) не обнаруживает таких проблем.

Существует экспериментальный инструмент valgrind --tool = exp-sgcheck, целью которого является обнаружение таких ошибок, но он никогда не работал должным образом, и инструмент, вероятно, будет удален из дистрибутива valgrind.

Насколько мне известно, gcc / clang sanitizer - это метод, используемый для обнаружения таких ошибок.

...