ерации с памятью отслеживались
Автор admin Пятница, 8 мая 2009 11:32
ерации с памятью отслеживались всегда. Трассировка, выводящая информацию о работе заменителей operator new() и operator delete(), включена по умолчанию, но ее можно отключить макросом TRACE_OFF(). В любом случае итоговый результат выводится всегда (см. примеры тестов далее в этой главе). Система MemCheck отслеживает операции с памятью, для чего все адреса, выделенные оператором new, сохраняются в массиве структур Info. В массиве также хранятся имена файлов и номера строк, в которых находился вызов new. Чтобы предотвратить конфликты с именами глобального пространства имен, мы стараемся сохранить как можно больше информации в анонимном пространстве. Класс Sentinel существует только для вызова деструктора статического объекта при завершении программы. Деструктор просматривает memMap и смотрит, остались ли в карте памяти неудаленные указатели (что является признаком утечки памяти). Наша функция operator new() получает память с помощью функции malloc(), после чего включает указатель и связанные с ним данные в memMap. Функция operator delete() «отменяет» эти операции, вызывая free() и уменьшая nptrs, но снача
Комментарии закрыты.
Последние комментарии