Шаг 39 - Диагностические возможности

Библиотека фундаментальных классов Microsoft (MFC) содержит много диагностических возможностей, чтобы помогать отладить вашу прикладную программу в течение ее создания. Эти возможности, особенно, что касается распределения памяти, замедлят вашу программу. Другие, типа отладочных действий заставляют Вашу программу останавливаться, когда с ошибочными условиями сталкиваются.

В конечной программе, медленная скорость выполнения и прерывание программы ясно недопустима. По этой причине, MFC переключает метод для превращения отладки и диагностических возможностей. Когда Вы разрабатываете вашу программу, Вы типично формируете Win32 Debug версию из вашей программы. Как только программа закончена и отлажена, Вы формируете Win32 Release версию.

Обратите внимание прежде, чем Вы можете использовать многие из MFC диагностических возможностей, Вы должны допустить использовать диагностику, устанавливая флажок afxTraceEnabled и настраивая afxTraceFlags к уровню детальности, которую Вы хотели бы видеть в сообщениях отладчика. Самый простой способ использовать эти параметры настройки - это пользоваться утилитой TRACER.EXE.

Следующие возможности отладки включены во все классы, полученные из CObject в отладочной версии MFC:

  1. Вывод трассировки. Вы можете прослеживать вывод отладки, чтобы оценить параметры. См. "Шаг 145 - Дальше Читаем растр с диска".
  2. Проверка значений. Используйте для этого ASSERT макрос. См. "Подробности - макрос ASSERT".
  3. Используйте AssertValid макрос для проверки внутреннего содержания объекта порожденного от CObjectM см. "Шаг 223 - AssertValid".
  4. Используйте макрокоманду DEBUG_NEW, чтобы показать, где объекты были распределены. См. "Шаг 228 - DEBUG_NEW".
  5. Используйте возможности поиска утечки памяти. Он позволяет производить диагностику памяти, чтобы обнаружить утечки памяти. См. "Шаг 35 - Использование ActiveX с волшебниками".
  6. Используйте дампы объекта для изучения его внутреннего содержания. См. "Шаг 224 - Dump", "Шаг 235 - CMemoryState", "Шаг 38 - Понимание DDV".

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 26.08.2000