Диагностика
Диагностика
Класс CObject содержит методы AssertValid и Dump, которые могут помочь на этапе отладки приложения. Оба эти методы определены как виртуальные. Вы можете переопределить их в своем классе.
Проверка целостности объектов класса
Метод AssertValid выполняет проверку целостности объекта класса. Он проверяет состояние элементов данных класса на недопустимые значения. Если вы работаете с отладочной версией приложения и метод AssertValid обнаружит ошибку во внутреннем представлении объекта класса, выполнение приложения прерывается с выдачей соответствующего сообщения.
virtual void AssertValid() const;
Если вы наследуете класс от базового класса CObject и желаете использовать возможности метода AssertValid, вы должны переопределить его. Переопределенный метод AssertValid должен вызывать метод AssertValid базового класса, чтобы проверить целостность соответствующей части объекта. Затем необходимо выполнить проверку элементов порожденного класса. Для этого используйте макрокоманду ASSERT:
ASSERT(booleanExpression)
Макрокоманда ASSERT проверяет свой параметр booleanExpression. Если параметр макрокоманды имеет нулевое значение (FALSE), она отображает диагностическое сообщение и прерывает работу приложения. Если параметр booleanExpression не равен нулю (TRUE) работа приложения продолжается и макрокоманда не выполняет никаких действий.
Макрокоманда ASSERT выполняет проверку только в отладочной версии приложения. В окончательной версии приложения, построенной без отладочной информации, макрокоманда ASSERT не работает.
Если проверку параметра макрокоманды необходимо выполнять и в окончательной версии приложения, вы можете использовать вместо макрокоманды ASSERT макрокоманду VERIFY. Но при обнаружении ошибки работа приложения не будет прервана.
Вот пример переопределения метода AssertValid для класса CFigure, наследованного от базового класса CObject:
// Класс CFigure наследуется от базового класса CObject
class CFigure : public CObject {
// Переопределяем виртуальный метод базового класса
int m_area = 0;
// Остальные элементы класса…
}
// Переопределяем виртуальный метод AssertValid класса CObject
void CFigure::AssertValid() const {
// Сначала проверяем целостность элементов базового класса
CObject::AssertValid();
// Проверяем элемент m_area.
// Он должен быть больше или равен нулю
ASSERT(m_area >= 0);
}
Получение дампа объекта класса
Виртуальный метод Dump позволяет получить дамп объекта данного класса:
virtual void Dump(CDumpContext& dc) const;
Метод Dump имеет единственный параметр dc, определяющий контекст отображения для вывода дампа объекта. Часто в качестве параметра dc используется предопределенный объект afxDump. Он позволяет передавать информацию в окно отладчика Visual C++. Объект afxDump определен только для отладочной версии приложения.
Вы можете переопределить метод Dump для своего класса. Переопределенный метод должен сначала вызывать метод Dump базового класса, а затем выводить значения элементов самого класса. Для вывода значений элементов объекта класса в контекст dc можно использовать операторы <<, переопределенные для класса CDumpContext.
Если класс определен с макрокомандами IMPLEMENT_DYNAMIC или IMPLEMENT_SERIAL, то метод Dump класса CObject будет отображать также имя самого класса.
Для класса CFigure, описанного выше, метод Dump можно определить следующим образом:
void CFigure::Dump(CDumpContext &dc) const {
// Вызываем метод Dump базового класса
CObject::Dump(dc);
// Выводим в контекст dc значение элемента m_area
// класса CFigure
dc << "Площадь = " << m_area;
}
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
7.3. Диагностика компонентов операционной системы
7.3. Диагностика компонентов операционной системы В Windows Vista много внимания уделено средствам диагностики неполадок в работе компонентов операционной системы и способам устранения этих неполадок или передачи информации о них компании Microsoft. Для этого были как улучшены
Устранение неполадок, возникающих при подключении. Диагностика модемного соединения
Устранение неполадок, возникающих при подключении. Диагностика модемного соединения К сожалению, операционная система не всегда может правильно определить причину неудачного подключения к Сети. В большинстве случаев она рекомендует проверить правильность ввода имени
Диагностика и устранение сетевых неполадок
Диагностика и устранение сетевых неполадок Локальная сеть представляет собой механизм, функционирование которого зависит от целого ряда внешних факторов: стабильность электропитания, количество и качество установленного на компьютерах программного обеспечения,
6.2.5. Прозрачность, диагностика и восстановление после сбоев
6.2.5. Прозрачность, диагностика и восстановление после сбоев Еще одним преимуществом прозрачности, связанным с простотой отладки, является то, что в прозрачных системах проще выполнять действия по восстановлению после сбоев, и часто такие системы, в первую очередь, более
6.2.5. Прозрачность, диагностика и восстановление после сбоев
6.2.5. Прозрачность, диагностика и восстановление после сбоев Еще одним преимуществом прозрачности, связанным с простотой отладки, является то, что в прозрачных системах проще выполнять действия по восстановлению после сбоев, и часто такие системы, в первую очередь, более
23.3.5. Диагностика аппаратного сбоя с помощью ядра
23.3.5. Диагностика аппаратного сбоя с помощью ядра Если во время загрузки или работы Linux произошел серьезный аппаратный сбой (кроме сбоев видеоподсистемы), ядро «впадает в панику» (это режим работы ядра — режим паники, когда работа всей системы останавливается), а на
Диагностика и извлечение информации
Диагностика и извлечение информации AnyReader Сайт: http://www.anvreader.com/ruРазмер: 2 МбайтСтатус: SharewareЦена: 420 рублейПоцарапанный компакт-диск, DVD, «сбойная» карта флэш-памяти… Все это можно просто выбросить в мусорную корзину… А можно попытаться спасти максимум полезной информации
Диагностика системы
Диагностика системы Компьютер — высокотехнологичная вещь, он состоит из множества независимых компонентов. Все в совокупности, они представляют то, к чему мы давно привыкли. Как же узнать, какие именно аппаратные решения используются в вашем компьютере? Получить ответ
7.3. Диагностика соединения
7.3. Диагностика соединения Для диагностики соединения в Windows используются следующие инструменты: ipconfig, ping и tracert. Но прежде чем их использовать, поговорим о пяти наиболее распространенных ошибках.Начнем с самой распространенной — неправильное имя или пароль пользователя
Диагностика и тактика
Диагностика и тактика Цель диагностики – выяснить, почему не читается информация с диска и что именно пропало. Это одновременно и ответ на вопрос, что делать дальше. И диагностикой, и восстановлением данных с проблемного винчестера нельзя заниматься, загрузив компьютер
Глава 4 Самостоятельная диагностика некоторых неисправностей
Глава 4 Самостоятельная диагностика некоторых неисправностей Довольно часто неопытных пользователей «разводят» на новые комплектующие, например заявляют, что «винт посыпался», хотя на самом деле можно было пометить все «битые» секторы (если они вообще есть) и дальше
Диагностика жестких дисков
Диагностика жестких дисков Жесткие диски – отчасти механические устройства, а не только электронные платы. А механика, как мы знаем, может выходить из строя. Сила трения? И она тоже! Одним словом, в один не очень прекрасный момент ваш жесткий диск может «посыпаться», то
Диагностика и устранение проблем при подключении к Интернету
Диагностика и устранение проблем при подключении к Интернету Для оперативной диагностики состояния подключения к Интернету достаточно просто взглянуть на внешний вид значка сетевых подключений в области уведомлений: соединение с Интернетом установлено; работает
Глава 1. Диагностика компьютерной зависимости
Глава 1. Диагностика компьютерной зависимости Известие о том, что в октябре 2005 г. в Китае от истощения после многосуточной игры в World of Warcraft умерла девочка по имени Snowly (это принятое в игре имя девочки) повергло мировую общественность в шок. Ее многочисленные друзья по