Найти в Дзене

Общие принципы отладки

Если кто не знал: ошибку в программе часто называют “баг” (жучок).
Если кто не знал: ошибку в программе часто называют “баг” (жучок).

Мало кто из программистов любит это делать, но заниматься этим приходится всем. Я говорю про отладку программ. Потому что ни одна более-менее серьёзная программа не заработает с первой попытки. А у новичков даже программа Hello World может вызвать затруднения и панику, если не запустится с первого раза (хорошо помню, как я радовался своей Hello World на Паскале, но это были другие времена - без Интернета, и в условиях отсутствия информации это для меня была действительно победа).

Для отладки программного обеспечения во всех средствах разработки имеются соответствующие инструменты. Но, честно говоря, я ими почти никогда не пользуюсь (пользовался в начале пути, но и то больше из любопытства, чем из необходимости). Почему?

Да потому что 99,9% ошибок в программе можно найти без использования специальных отладочных инструментов. А если хорошо подумать, то и оставшийся 0,1% ошибок тоже можно найти без отладчиков. Здесь главное - не паниковать. А ещё более главное - понимать, что ты делаешь (к сожалению, многие современные разработчики не понимают, что делают, а тупо копируют откуда-нибудь готовый код).

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

Этот случай простой, потому что компилятор СООБЩАЕТ не только о виде ошибки, но и даже показывает место ошибки. Правда, не всегда правильно. Но это уже мелочи. Надо просто внимательно читать сообщения компилятора, и для этого неплохо бы подучить английский язык.

Намного хуже, когда ошибка возникает во время выполнения. Такие ошибки, особенно в больших и сложных программах, бывает найти очень непросто. Для поиска таких ошибок, основном, и используются отладчики. Однако, как я уже сказал, можно прекрасно обходиться и без них.

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

Да, возможно в таких случаях использование отладчика могло бы сократить время на отладку. Но только в том случае, если вы работаете только с одной средой разработки и достаточно часто. Тогда имеет смысл потратить немного времени на изучение отладочных инструментов.

Если же вы, как я, сегодня работаете в Delphi, завтра в Lazarus, послезавтра в CoDeSys, затем в Dev-C++, затем в Visual Studio и так далее (да ещё в разных версиях), то изучить во всех подробностях все возможности отладчиков будет непросто (да и не нужно). А без глубоких знаний этих возможностей применение отладчика теряет смысл, так как время вы не сэкономите.

На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить.