CMemoryState

CMemoryState має базового класу.

CMemoryState забезпечує зручний спосіб виявлення витоку пам'яті у вашій програмі. "Витік пам'яті" відбувається, коли пам'ять для об'єкта виділяються в купі, але не deallocated, коли це вже не потрібно. Такі витоків пам'яті в кінцевому підсумку може призвести до помилки з пам'яті. Є кілька способів, щоб виділити і deallocate пам'яті у програмі:

CMemoryState діагностика лише допомогти, виявлення витоків пам'яті, що викликало коли пам'яті виділяється за допомогою нового оператора не deallocated за допомогою Видалення. Інші дві групи функцій керування пам'яттю для програми-C++ та змішування їх з новим і Видалити до тієї ж програми не рекомендується. Додаткові макрос, DEBUG_NEW, надається замінити нового оператора, коли вам потрібен файл і номер рядка відстеження виділення пам'яті. DEBUG_NEW використовується, коли ви, як правило, використання нового оператора.

Як і з іншими діагностики CMemoryState діагностики доступні лише в налагодження версії програми. Налагоджування версії повинні мати постійний _DEBUG , визначені.

Якщо ви підозрюєте, що ваша програма повинна витік пам'яті, можна використовувати функції контрольно-пропускному пункті, різницюі DumpStatistics виявити різницю між стан пам'яті (виділені об'єкти) в двох різних точках виконання програми. Ці відомості можуть бути корисними для визначення, чи функцію очищення всіх об'єктів, які він виділяє.

Якщо просто знаючи, де відбувається за дисбалансу у розміщення і звільнення не містить достатньо відомостей, можна використовувати функцію DumpAllObjectsSince скинути всі об'єкти, виділені з попереднього виклику на контрольно-пропускному пункті. Цей дамп показує порядок розміщення, вихідний файл і рядка, де об'єкт виділена (якщо ви використовуєте DEBUG_NEW для розміщення) та диференціювання об'єкт, його адреса та його розмір. DumpAllObjectsSince також закликає звалища функції кожного об'єкта до надання інформації про його поточний стан.

Щоб отримати додаткові відомості про використання CMemoryState і інших діагностики, перегляньте MFC налагодження підтримка в Visual C++ програміста керівництво.

Примітка   Освідчення в об'єкти типу CMemoryState і закликає до функцій-членів повинні дужки на #if defined(_DEBUG)/#endif Директиви. Це викликає діагностики пам'яті для включення лише налагодження версії програми.

|&Nbsp членів класу ; Ієрархічна діаграма

Index