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