Описание тега memcheck
Memcheck - это инструмент проверки ошибок динамической памяти, присутствующий в структуре valgrind. Он может обнаруживать ошибки, связанные с использованием динамической памяти в программах c и C++. В основном он показывает ошибочные случаи для следующих сценариев
- Вам не следует обращаться к памяти, например, переполнять и опускать блоки кучи, переполнять верхнюю часть стека и получать доступ к памяти после ее освобождения.
- Использование неопределенных значений, то есть значений, которые не были инициализированы, или которые были получены из других неопределенных значений.
- Неправильное освобождение памяти кучи, например двойное освобождение блоков кучи или несоответствующее использование
malloc
/new
/new[]
противfree
/delete
/delete[]
. - Перекрытие
src
а такжеdst
указатели вmemcpy
и связанные функции. - Утечки памяти.
При использовании valgrind freamework для тестирования программы memcheck является инструментом по умолчанию, который будет использоваться для проверки. Когда memcheck обнаруживает какую-либо ошибку в программе, она распечатывает тип ошибки и возможное место в коде, а также некоторую другую информацию, связанную с процессом, которая помогает найти ошибочный фрагмент кода и исправить его.
Любая отладка динамической памяти, выполненная с помощью инструмента memechek [или инструмента valgrind по умолчанию], должна быть отмечена этим тегом.