Диагностические услуги

Библиотеки 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-производных объектов, которые были переданы с новой.

Index