Библиотеки Microsoft Foundation Class поставляет множество диагностических услуг, делающих отладку ваших программ проще. Эти диагностические услуги включают в себя макросы и глобальные функции, которые позволяют отслеживать ваши программы памяти ассигнований, сбрасывать содержимое объектов во время выполнения и печатать сообщения отладки во время выполнения. Макросы и глобальных функций диагностические услуги сгруппированы в следующие категории:
Эти макросы и функции доступны для всех классов, производных от CObject в отладочной и выпускаемой версий MFC. Однако все за исключением DEBUG_NEW и Проверка ничего в версии выпуска.
В отладочной библиотеке все блоки выделенной памяти заключен в квадратные скобки с серией «гвардия байтов.» Если эти байты обеспокоены записи странствующий памяти, диагностические процедуры может сообщить о проблеме. Если включить строку
# define новые DEBUG_NEW
в файле реализации все вызовы новой будет хранить имя файла и номер строки где проходил выделения памяти. Функция CMemoryState::DumpAllObjectsSince будет отображать эту дополнительную информацию, позволяя вам для выявления утечек памяти. Обратитесь также к классу CDumpContext для получения дополнительной информации о данных.
Кроме того библиотека времени выполнения c также поддерживает набор диагностических функций, которые можно использовать для отладки приложений. Для получения дополнительной информации, смотрите Отладки подпрограмм в Справочник по библиотеке времени выполнения.
Диагностика макросов MFC Генеральной
УТВЕРЖДАТЬ | Выводит сообщение и затем прерывает программу, если указанное выражение FALSE в отладочной версии библиотеки. |
ASSERT_KINDOF | Тесты, которые объект является объектом заданного класса или класса, производного от класса указанного класса. |
ASSERT_VALID | Проверяет внутренней допустимости объекта путем вызова функции-члена его AssertValid ; обычно переопределен от CObject. |
DEBUG_NEW | Предоставляет имя файла и номер строки для всех объектов выполнялась в режиме отладки для поиска утечек памяти. |
СЛЕД | Обеспечивает printf-как возможности в отладочной версии библиотеки. |
TRACE0 | По аналогии с след но принимает строку формата без аргументов. |
TRACE1 | По аналогии с след но принимает строку формата с одним аргументом. |
TRACE2 | По аналогии с след но принимает строку формата с двумя аргументами. |
TRACE3 | По аналогии с след но принимает строку формата с тремя аргументами. |
ПРОВЕРИТЬ | Но подобно ASSERT вычисляет выражение в окончательной версии библиотеки, а также в отладочной версии. |
MFC Генеральной диагностики переменных и функций
afxDump | Глобальная переменная, которая отправляет CDumpContext сведения в окне вывода отладчика или отладки терминал. |
afxMemDF | Глобальная переменная, которая управляет поведением отладки распределитель памяти. |
afxTraceEnabled | Глобальная переменная используется для включения или отключения вывода из макрос TRACE. |
afxTraceFlags | Глобальная переменная, используемая для включения встроенной функции отчетности MFC. |
AfxCheckError | Глобальная переменная, используемая для проверки передаваемого SCODE ли это ошибка, и если да, выдает соответствующее сообщение об ошибке. |
AfxCheckMemory | Проверяет целостность всех выделенных в данный момент памяти. |
AfxDump | Если во время пребывания в отладчике, выводит состояние объекта во время отладки. |
AfxDumpStack | Генерировать изображение текущего стека. Эта функция всегда статически. |
AfxEnableMemoryTracking | Поворачивает памяти, отслеживание и вне. |
Активный | Проверяет, правильно выделить блок памяти. |
AfxIsValidAddress | Проверяет, что диапазон адресов памяти в пределах программы. |
AfxIsValidString | Определяет, допустимо ли указатель на строку. |
AfxSetAllocHook | Дает возможность вызова функций на каждом выделении памяти. |
Диагностические функции MFC объекта
AfxDoForAllClasses | Выполняет заданную функцию для всех CObject-производные классы, которые поддерживают проверку типов во время выполнения. |
AfxDoForAllObjects | Выполняет заданную функцию для всех CObject-производных объектов, которые были переданы с новой. |