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

NoteСоветы

Вы, кроме того, можете приостановить исполнение программы, запущенной в окне Trace (Трассировка) нажатием клавиши ESC.

Suspending Execution at a Line of Code (Приостановка исполнения на строке кода)

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

Чтобы установить точку останова на конкретной строке кода

  1. В окне Trace (Трассировка) найдите строку кода, на которой вы желаете установить точку останова.

  2. Установите на эту строку курсор.

  3. Выполните одно из приведенного ниже:

    • выполните двойной щелчок в серой области слева от строки кода;

    • в полоске инструментов Debugger (Отладчика) щелкните по командной кнопке Toggle Breakpoints (Переключить точку останова);

    • нажмите F9.

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

NoteСоветы

Если вы отлаживаете объекты, вы можете найти конкретные строки кода в окне Trace (Трассировки) выбрав объект из выпадающего списка Object (Объект), а также метод или событие из выпадающего списка Procedure (Процедура).

Вы, кроме того, можете установить точки останова указанием размщений и файлов в диалоговом окне Breakpoints (Точки останова).

Примеры размещений и файлов для точек останова
Размещение Файл Где будет приостановлено исполнение

ErrHandler

C:\Myapp\Main.prg

На первой исполнимой строке в процедуре с именем ErrHandler в файле Main.prg.

Main,10

C:\Myapp\Main.prg

На десятой исполнимой строке в программе с именем Main.

Click

C:\Myapp\Form.scx

На первой исполнимой строке любой процедуры, функции, метода или события с именем Click в файле Form.scx.

cmdNext.Click

C:\Myapp\Form.scx

На первой исполнимой строке, ассоциированной с событием Click объекта cmdNext в файле Form.scx.

cmdNext::Click

 

На первой исполнимой строке в событии Click любого элемента управления, чьим родительским классом (ParentClass) является cmdNext в любом файле.

Приостановка исполнения при изменении значения

Если вы желаете знать, когда будет изменено значение переменной или свойства, или когда будет изменено условие в run-time, вы можете установить точку останова на выражении.

Чтобы установить точку останова на момент изменения значения или выражения

  1. В меню Tools (Инструменты) в окне Debugger (Отладичка) выберите Breakpoints (точки останова) для вывода диалогового окна Breakpoints (Точки останова).

  2. Из списка Type (Тип) выберите Break when expression has changed (Остановить при изменении выражения).

  3. Введите выражение в боксе Expression (Выражение).

Примеры выражений для точек останова
Выражение Используется

RECNO( )

для приостановки исполнения, когда указатель записи смещается в таблице.

PROGRAM( )

для приостановки исполнения на первой строке любой новой программы, процедуры, метода или события.

myform.Text1.Value

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

Приостановка исполнения по условию

Достаточно часто появляется желание приостановить исполнение программы не на конкретной строке кода, а в случае, когда определенное выражение оценивается в истину (true).

Чтобы приостановить исполнение программы, когда выражение оцентивается в true

  1. В меню Tools (Инструменты) в окне Debugger (Отладичка) выберите Breakpoints (точки останова) для вывода диалогового окна Breakpoints (Точки останова).

  2. Из списка Type (Тип) выберите Break when expression is true (Остановить при оценке выражения в true).

  3. В боксе Expression (Выражение) введите желаемое выражение.

  4. Щелкните по Add для добавления точки останова в список Breakpoints (Точки останова).

Примеры выражений для точек останова
Выражение Используется

EOF( )

для пристановки исполнения, когда указатель записи переместился за последнюю запись в таблице.

'CLICK'$PROGRAM( )

для пристановки исполнения на первой строке кода, ассоциированного с событием Click или DblClick.

nReturnValue = 6

Если возвращаемое значение из окна сообщения (messagebox) сохраняется в переменной nReturnValue, то исполнение будет приостановлено, когда пользователь щелкнет по кнопке Yes (Да) окна вывода сообщения.

Приостановка исполнения по условию на строке кода

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

Чтобы приостановить исполнение на конкретной строке кода при оценке выражения в true

  1. В меню Tools (Инструменты) в окне Debugger (Отладичка) выберите Breakpoints (точки останова) для вывода диалогового окна Breakpoints (Точки останова).

  2. Из списка Type (Тип) выберите Break at location if expression is true (Остановить в месте, где выражение будет оценено в true).

  3. Укажите место в боксе Location (Размещение).

  4. В боксе Expression введите желаемое выражение.

  5. Щелкните по Add для добавления точки останова в список Breakpoints (Точки останова).

  6. Щелкните по OK.

    NoteСоветы

    Иногда проще найти строку кода в окне Trace (Трассировка), установить точку останова, а лишь затем отредактировать ее в диалоговом окне Breakpoints (точки останова). Для редактирования изменение Type (Тип) из Break at location в Break at location if expression is true и затем введите выражение.

Removing Breakpoints (Удаление точек останова)

Вы можете запретить точки останова без удаления их в диалоговом окне Breakpoints (Точки останова). Вы можете удалить точки останова типа "break at location" в окне трассировки - Trace.

Чтобы удалить точки останова из строки кода

  • В окне Trace (Трассировка) найдите точку останова и выполните одно из приведенного ниже:

    • установите курсор на строку кода и затем в полоске инструментов Debugger (Отладчика) щелкните по командной кнопке Toggle Breakpoints (Переключить точку останова);

      - или -

    • выполните двойной щелчок в серой области слева от строки кода.

Смотрите также