Шаг 9.
Средства отладки программ. Выполнение программы до заданной точки

   На этом шаге мы рассмотрим способы выполнения программы до заданной точки.

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

    Чтобы задать в программе точку, до которой вы хотите ее выполнить, а затем остановиться, используйте команду Run|Go to Cursor (Выполнение до курсора) или клавишу F4. Позиционируйте курсор на той строке, где вы хотите возобновить управление отладкой, затем нажмите клавишу F4. Заметим, что вы можете сделать это как в начале сеанса отладки, так и когда уже выполните часть программы по шагам.

    Второй способ состоит в том, чтобы остановить в определенной заданной точке вашу программу. Эта точка называется точкой останова.

    Точка останова - это обозначенная в коде программы позиция, в которой вы хотите прекратить выполнение программы и вернуть выполнение отладчику. В этом смысле точка останова работает аналогично команде Go to Cursor, при которой программа выполняется обычным путем до достижения определенной точки. Основное различие состоит в том, что вы можете задать несколько точек останова и точки останова, которые будут срабатывать не при каждом их достижении.


    Чтобы установить в программе точку останова, переместите курсор на ту строку, где вы хотите остановиться. Строка должна содержать выполняемый код и не может быть комментарием, описанием или пустой строкой. Выбор команды Toggle Breakpoint в локальном меню окна редактирования или нажатие комбинации клавиш Ctrl+F8 устанавливает на строке точку останова, которая обозначается подсветкой всей строки.

    Теперь при выполнении программы из среды программирования она будет останавливаться при достижении данной строки, но перед ее выполнением. Строка, содержащая точку останова, выводится при этом в окне редактирования как строка выполнения. В этот момент вы можете выполнить любые другие действия по отладке (выполнение программы по шагам, трассировку, просмотр и вычисление).

    Чтобы отменить точку останова, поместите курсор на содержащую ее строку и выберите в локальном меню окна редактирования команду Toggle Breakpoint или нажмите клавиши Ctrl+F8.

    В процессе сеанса отладки среда программирования отслеживает все точки останова, просмотреть которые можно в диалоговом окне Breakpoints (рис.1). Для вывода на экран этого диалогового окна выберите команду Debug|Breakpoints. В этом диалоговом окне вы можете устанавливать, удалять, редактировать и просматривать свои точки останова.


Рис.1. Окно с точками останова

    Командные кнопки диалогового окна Breakpoints работают следующим образом:

    Точки останова, добавленные командой Toggle Breakpoint, являются безусловными: когда вы попадаете на эту строку, отладчик в любом случае останавливает программу. Если вы редактируете новую или существующую точку останова, то у вас есть две дополнительные возможности - с помощью параметров диалогового окна Edit Breakpoint вы можете создать условные точки останова. В этих точках останова можно задать два вида условий:

    Задание для точки останова счетчика проходов сообщает отладчику, что останавливать программу нужно не при каждом достижении точки останова, а только на n-й раз. Например, если счетчик проходов равен 3, то отладчик останавливает программу только при третьем достижении данной точки останова.

    В качестве условия для точки останова можно также задать логическое выражение, например: I>6.

    Даже если вы не установите точек останова, то все равно сможете выйти в отладчик при выполнении программы из среды программирования. В любой момент работы программы нажмите клавиши Ctrl+Break. Отладчик найдет позицию в исходном коде, где вы прервали программу. Затем можно выполнить программу по шагам, трассировать ее, отследить или вычислить значение выражения.


    На следующем шаге мы рассмотрим еще несколько инструментов, используемых для отладки программ.





Предыдущий шаг Содержание Следующий шаг