Отладка приложений



         

Набор навыков - часть 2


Язык Microsoft Visual Basic также генерирует значительное количество кода. Многие ошибки, особенно связанные с проблемами производительности, являются результатом неправильного употребления языка, так что имеет смысл затратить некоторое время на изучение индивидуальных особенностей используемых вами языков программирования.

Знание технологии

Освоение применяемых при разработке технологий,— это первый большой шаг на пути устранения наиболее трудных ошибок. Например, если вы знаете, что делает СОМ при создании экземпляра СОМ-объекта и возврате его интерфейса, то вам понадобится намного меньше времени, чтобы проследить, почему потерпел неудачу специфический запрос интерфейса. То же самое происходит и при работе с библиотекой классов MFC (Microsoft Foundation Class). Имеет смысл представлять, как протекают сообщения в архитектуре документ/представление (document/view), на случай возникновения проблем с документом, получающим сообщение от операционной системы Windows. Говоря о знании применяемых технологий, я имею в виду, что необходимо иметь по крайней мере общее их понимание и, что еще важнее, точно знать, где, при необходимости, можно найти более детальную информацию.

Знание операционной системы

Знание операционной системы позволит устранить ошибку, а не пытаться просто что-то делать. Необходимо знать ответы на следующие вопросы, касающиеся используемой операционной системы: что такое библиотека динамической компоновки (DLL), как работает загрузчик изображений, как работает системный реестр. Часто самые тяжелые ошибки возникают тогда, когда программа обращается к операционной системе, и связано это с тем, что разработчик не знает разветвлений, создаваемых этим обращением, или передает неверные данные.

Приведу пример: представьте себе, что программа исчерпывает память, и вы не можете найти, какой модуль не вмещается в выделенную область. Знание операционной системы позволяет устранить эту ошибку — все распределения памяти в конечном счете сводятся к вызову функции API virtuaiAiioc.


Содержание  Назад  Вперед