Диагностические службы
Предоставляет библиотеки Microsoft Foundation Class множество служб диагностики, которые делают отладки в ваших программах проще. Эти службы включают диагностики макросов и глобальные функции, позволяющие отслеживать выделения памяти программы, сбрасывают содержимое объектов во время выполнения, и типу сообщений отладки во время выполнения. Макросы и глобальные функции для диагностики служб группированы на следующие категории:
Общие диагностики макросы
Общие диагностические функции и переменные
Функции диагностики объекта
Эти макросы и функции, доступные для всех классов, унаследованных от CObject при отладке и в окончательной версии MFC. Однако все за исключением того, что DEBUG_NEW и VERIFY не выполняют никаких действий в версии выпуска.
В отладочной библиотеке, все блоки памяти, выделенной предоставляются в скобки с серией «байтов условия». Если эти байты план странствующей памятью, запись, затем контрольные программ может уведомить проблему. При включении линии, выполните следующие действия.
#define new DEBUG_NEW
в файле реализации, все вызовы новый будут храниться имя файла и номер линии, выделение памяти произошло. Функция CMemoryState::DumpAllObjectsSince на это дополнительных сведений, что позволяет указать утечки памяти. Также ссылаться на класс CDumpContext дополнительные сведения в диагностическом выходных данных.
Кроме того, библиотека времени выполнения C также поддерживает набор диагностических функций можно использовать для отладки приложений. Дополнительные сведения см. в разделе Отладка процедур в справочнике библиотеки времени выполнения.
Макросы MFC общие диагностики
Выводит сообщение, а затем прерывает выполнение программы, если указанное выражение принимает значение ЛОЖЬ в отладочной версии библиотеки. |
|
Тесты, объекта указанного класса или класса, производного от указанного класса. |
|
Выполняет внутреннюю допустимость объекта, вызвав функцию-член AssertValid; обычно переопределяется из CObject. |
|
Предоставляет имя файла и номер линии для всех выделений объекта в режиме отладки, чтобы помочь найти утечки памяти. |
|
Аналогично ASSERT , но не выполняет значение выражения; используются для выполнения кода, только в режиме отладки. |
|
Предоставляет возможность printf похожую на в отладочной версии библиотеки. |
|
Аналогично ASSERT, но вычисляет выражение в версии выпуска библиотеки, так и в отладочной версии. |
Переменные и функции MFC общие диагностики
Глобальная переменная, которая отправляет данные CDumpContext в окне вывода отладчика или в терминалу отладки. |
|
Глобальная переменная, элементы управления расширение функциональности распределителя памяти отладки. |
|
Глобальная переменная, используемая для выполнения переданное SCODE, является ли эта ошибка, и, если да, создает соответствующую ошибку. |
|
Проверяет целостность всех в данный момент выделяемая память. |
|
Если вызывается при в отладчике, дампах состояние объекта при отладке. |
|
Создание образа текущей стека. Эта функция всегда статически связана. |
|
Включает дампу утечки памяти. |
|
Включение отслеживания память время от времени. |
|
Проверяет, что блок памяти был правильно установлен. |
|
Проверяет, что диапазон адреса памяти в пределах границ программы. |
|
Определяет, является ли допустимым указатель на строку. |
|
Включает вызов функции в каждом выделении памяти. |
Функции диагностики объекта MFC
Выполняет указанную функцию на всем CObject- производные классы, поддерживающие проверку типа во время выполнения. |
|
Выполняет указанную функцию на всем CObject- производные объекты, выделенные с новый. |