Скачиваний:
308
Добавлен:
01.05.2014
Размер:
3.67 Mб
Скачать

Отладка больших программ

Точки прерывания - Breakpoints. Будем считать “большими” программы, превышающие пару размеров экрана. Для них изложенный только что пошаговый режим может быть очень утомительным, так как слишком часто приходится жатьF7. Вы можете заставить Паскаль при выполнении программы задерживаться не на каждой строке, а только на некоторых - тех, что вам нужно.

Поставьте курсор на одну из этих строк и нажмите Ctrl-F8. Строка станет красной. Это знак того, что при выполнении программа на ней остановится. Будем называть эту строкуточкой прерывания или контрольной точкой.

Поставьте курсор на другую строку и снова нажмите Ctrl-F8. Эта строка тоже станет точкой прерывания.

Так проделайте со всеми нужными вам строками. Затем можете обычным образом вывести на экран окна пользователя и отладчика.

А теперь обычным образом (RunRunили Ctrl-F9) запускайте программу. Программа будет выполняться до тех пор, пока не наткнется на какую-нибудь точку прерывания. На ней она встанет и продолжит работу с того места, где остановилась, только при новом нажатииCtrl-F9. И так далее.

Убирается точка прерывания точно так же, как ставится - Ctrl-F8.

Иди до курсора” - Goto cursor. Это еще один способ остановки в нужной вам строке. Поставьте курсор в нужную строку и нажмитеF4. Программа будет выполняться до тех пор, пока не наткнется на строку с курсором. А теперь поставьте курсор в другую строку и снова нажмитеF4. Программа продолжит работу с того места, где остановилась, и будет выполняться до тех пор, пока не наткнется на строку с курсором. И так далее.

Кстати, в процессе выполнения программы вы можете достаточно свободно переключаться между разными способами ее выполнения – F7,F4илиCtrl-F9.

Испольование Write и ReadLn. Если программа работает с графикой, то пользоваться вышеописанными средствами отладки или неудобно или нельзя. Не беда. Еще до существования всех и всяческих отладчиков программисты пользовались вспомогательной печатью значений переменных. Действительно, вместо использования окна отладчика для подсматривания за переменнымиnиk, вы просто можете в программу вставить дополнительный операторWrite(’ n=‘,n,’ k=‘,k). А вместо пошагового режима можете в нужных местах программы поставитьReadLn. Когда программа будет отлажена, вы уберете эти дополнительные операторы.

Только имейте в виду, что когда экран с вашими картинками донизу будет заполнен информацией, напечатанной оператором Write, он начнет прокручиваться вверх, а вместе с ним вверх уползут и ваши картинки. Чтобы избежать этого, нужно сделать так, чтобы не допечатав донизу, компьютер при помощиReadLnсделал паузу (чтобы вы успели посмотреть результаты печати) и снова стал печатать бы сверху. А для печати сверху необходимо вставить в нужное место программы операторGotoXY(см.4.7). А уж для этого вам нужно использовать модульCRT(см. 5.1) и вставить в начало программы операторDirectVideo:=false(см.6.3).