Бібліотеки класів Microsoft фонду постачання багато діагностичні послуги, які роблять налагодження програми простіше. Ці діагностичні послуги включають макроси та глобальні функції, які дають змогу відстежувати ваші програми пам'яті асигнувань, скинути вміст об'єктів під час виконання, час і друкувати налагодження повідомлення під час виконання, час. Макроси та глобальні функції для діагностичних послуг поділяються на такі категорії:
Ці макроси та функції, доступні для всіх класів, отриманих від CObject у налагодження та реліз версії MFC. Тим не менше, все, крім DEBUG_NEW і перевірити нічого не версії.
У бібліотеці налагодження всі блоки пам'ять, виділених дужки з серії "Гвардія байтів". Якщо ці байт порушений мандрівний пам'яті-писати, діагностичний процедур можна повідомити проблема. Якщо ви включите лінії
# визначити новий DEBUG_NEW
у файлі реалізації всі дзвінки на новий буде зберігати на ім'я файлу і номер рядка виділення пам'яті, де мали місце. Функція CMemoryState::DumpAllObjectsSince буде відображати цю додаткову інформацію, дозволяє визначити витоків пам'яті. Також зверніться до класу CDumpContext для отримання додаткової інформації про діагностику виводу.
Крім того, бібліотеки С під час також підтримує набір діагностичних функцій, які можна використовувати для налагодження додатків. Докладніше, перегляньте статтю Налагодження процедури Під час бібліотеки посилання.
MFC Генеральний діагностики макроси
| СТВЕРДЖУВАТИ | Друкує повідомлення а потім aborts програми, якщо вказаний вираз має значення ХИБНІСТЬ в налагоджування версії бібліотеки. |
| ASSERT_KINDOF | Тести, що об'єкт знаходиться об'єкт, указаний класу або класу, отриманих від вказаний клас. |
| ASSERT_VALID | Тести внутрішньої дійсності об'єкта, називаючи його AssertValid член функції; зазвичай змінені з CObject. |
| DEBUG_NEW | Постачання на ім'я файлу і номер рядка для всіх об'єктів асигнування в режимі налагодження допомогти знайти витоків пам'яті. |
| ТРАСУВАННЯ | Забезпечує printf-типу потенціалу в налагоджування версії бібліотеки. |
| TRACE0 | Подібно до ТРАСУВАННЯ , але займає формат рядок з аргументів. |
| TRACE1 | Подібно до ТРАСУВАННЯ , але займає формат рядок, на один аргумент. |
| TRACE2 | Подібно до ТРАСУВАННЯ , але займає формат рядок, на два аргументи. |
| TRACE3 | Подібно до ТРАСУВАННЯ , але займає формат рядок, на три аргументи. |
| ПЕРЕВІРТЕ, ЧИ | Подібно до НАДБАННЯ , але оцінює вираз версії бібліотеки, як добре, як у налагоджування версії. |
MFC Генеральний діагностики змінні і функції
| afxDump | Глобальна змінна, яка передає інформацію CDumpContext вікно виводу налагоджувача або термінал налагодження. |
| afxMemDF | Глобальна змінна, яка керує поведінкою налагодження розподільника пам'яті. |
| afxTraceEnabled | Глобальну змінну, що використовується для увімкнення або вимкнення виводу з ТРАСУВАННЯ макросу. |
| afxTraceFlags | Глобальну змінну, що використовується для Увімкнення вбудованих звітності особливостей MFC. |
| AfxCheckError | Глобальну змінну, що використовуються для перевірки переданий SCODE , щоб побачити, якщо це повідомлення про помилку і якщо так, кидає відповідне повідомлення про помилку. |
| AfxCheckMemory | Перевірка цілісності все, що в даний час виділяються пам'яті. |
| AfxDump | Якщо називають в налагоджувач, звалищ стану об'єкта під час налагодження. |
| AfxDumpStack | Створення зображення з поточного стосу. Ця функція завжди статично зв'язаний. |
| AfxEnableMemoryTracking | Перетворює пам'яті, відстеження та вимкнення. |
| AfxIsMemoryBlock | Перевіряє належним чином виділяються пам'яті блок. |
| AfxIsValidAddress | Засвідчує, що діапазон адреси пам'яті є потенційна програми. |
| AfxIsValidString | Визначає, чи діє курсор в рядок. |
| AfxSetAllocHook | Дає можливість виклику функції на кожний розподіл пам'яті. |
MFC об'єкт функції діагностики
| AfxDoForAllClasses | Виконує вказану функції всіх CObject-класи, які підтримують текст під час перевірки отриманих. |
| AfxDoForAllObjects | Виконує вказану функції всіх CObject-отриманих об'єкти, які були виділені з нових. |