| www.it-effect.com.ua |
|
| На центральную | Что нового | Что интересного | Структура сайта... |
| ПРО ЭТО... | Что здесь нового | Что здесь интересного |
Несомненно, отладка занимает большую часть времени при создании сколь бы то ни было сложной программы, а тем более большого проекта. После некоторого, весьма немалого, количества часов, проведенных за монитором в попытках понять, что же именно не работает и как это поправить, я выработал несколько основных способов отладки.
Прежде всего, что такое отладка? Это поиск ошибок и, опять же, поиск средств по их устранению. Очень часто бывает, что место в программе, где происходит ошибка, уже найдено, а вот на то, чтобы определить причину возникновения ошибочной ситуации, откуда "ноги растут" - уходит масса времени и сил. Т.е. весь процесс отладки можно разделить на несколько основных этапов:
Итак, в вашей программе возникла ошибка. Проявить себя она может по-разному. Как это будет - предсказать невозможно. Начиная некоторыми странностями в работе и заканчивая полным крахом всей системы (в варианте ПК - это как зависание машины, так и снос данных на диске - смотря что вы пишете). Здесь есть интересный метод поиска незаметных вам, как создателю, отклонений в работе программы. Пригласите вашу девушку (тетю, маму и т.д.) и покажите ей, как работает ваша программа. Особенно эффективен этот метод, если ваш "бета-тестер" не разбирается в компьютерах. Результат заранее положителен! Как правило, невидимые вам ошибки (есть более емкое слово - "глюки") хорошо заметны неискушенному человеку. У него сразу же возникает множество вопросов типа: "А что... А почему... А как..." Пытаясь ответить на эти вопросы вы сами лучше вникаете в то, что же вы сделали. При этом становятся заметнее как возможные ошибки, так и методы их исправления.
Ну и, в конце концов, ваша девушка (тетя, мама и т.д.) увидит, что вы есть классный специалист и вообще представляете из себя именно тот идеал, который... А может и совершенно не тот :)
Метод отлова ошибок трассировкой исходного кода программы удобен, если надо понять, куда программа "ходит". Это приемлемо для небольших участков кода, дополнение которых избыточной отладочной информацией затруднит понимание алгоритма, и, соответственно, дальнейшую отладку.
А вот для хоть немного более сложного анализа этот метод уже мало пригоден. Это особенно заметно, если отладчик не позволяет трассировку, или вообще отсутствует как таковой.
В таком случае наиболее перспективным вариантом отладки является ведение протокола работы программы, так называемого "лога".
Ну, похоже, что наиболее распространенная ошибка - это доступ к памяти по "плохому" указателю. Это случается сплошь и рядом. Причина может быть проста: использование неинициализированного указателя. А может быть сложнее: использование удаленного указателя.
...
* * * Продолжение следует * * *
При появлении ошибок на этапе компиляции внимательно читайте сообщения, выдаваемые компилятором. Особое внимание обращайте на имена переменных и типов - это позволит понять причину ошибки, возникающей, казалось бы "на ровном месте".
Пример:
У меня возникала ошибка приведения типов. При наличии некоторой иерархии наследования я создавал представителя класса родителя, а не потомка, что проходило при вызове методов, но было обругано в функциях, перегружаемых для передачи им указателей на соответствующего потомка. После нескольких неудачных перекомпиляций, я все-таки обратил внимание, что ошибка происходит при попытке привести указатель на предка к совершенно постороннему типу, для которого эта функция также была перегружена. То место в исходном тексте, "откуда ноги растут", стало очевидным...
...
|
|