AnyLogic
Развернуть
Размер шрифта

Точки останова

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

Включенная точка останова приводит к приостановке выполнения модели при достижении ею этой точки останова. Включенные точки останова отображаются с помощью голубых кружков [].

Выключенная точка останова не приводит к остановке выполнения модели. Выключенные точки останова рисуются белыми кружками [].

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

Панель Точки останова

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

Если вы сделаете двойной щелчок по точке останова в этом списке, то AnyLogic откроет местоположение этой точки в панели свойств или в редакторе Java кода. Вы можете включать и выключать точки останова, удалять их, добавлять новые, а также считать количество случаев выполнения строк кода с установленными на них точками останова во время выполнения модели.

Панель Точки останова

Чтобы открыть/закрыть панель Точки останова

  1. Выберите Вид > Точки останова из главного меню.

Вы можете управлять точками останова с помощью расположенных в верхнем правом углу панели Точки останова кнопок панели инструментов:

Команда Действие
 Показать строку точки останова Открывает Java редактор и выделяет в нем строку кода, на которой установлена точка останова.
Если точка останова была изначально установлена в коде Java класса или интерфейса, то код этого класса/интерфейса будет открыт в Java редакторе, и в нем будет выделена соответствующая строка.
Если точка останова была установлена в свойствах какого-то элемента модели, то в редакторе будет открыт код, сгенерированный для типа агента, на чьей диаграмме находится элемент с установленной точкой останова. В этом коде будет выделена строка, соответствующая этой точке.
 Показать точку останова в панели Свойства Выделяет строку, содержащую точку останова, в панели Свойства.
 Редактировать точку останова Открывает диалоговое окно Свойства для, в котором можно отредактировать свойства выбранной в данный момент точки останова.
 Удалить точку останова Удаляет выделенную в данный момент точку останова.

Добавление точек останова

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

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

  1. В редакторе кода щелкните правой кнопкой мыши по вертикальной линейке слева от той строки кода, на которую вы хотите поставить точку останова, и выберите Переключить точку останова из контекстного меню. Или же вы можете сделать двойной щелчок мышью — результат будет тот же. В панели Свойства перед выполнением этих действий необходимо поместить курсор в соответствующем поле кода.

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

Также новая точка останова появится в списке, отображенном в панели Точки останова.

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

Удаление точек останова

Если вам больше не нужно использовать для отладки какую-либо точку останова, вы можете ее удалить.

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

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

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

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

Включение и отключение точек останова

При необходимости вы можете включать и отключать точки останова.

Когда точка останова включена, выполнение потока модели будет приостанавливаться перед выполнением соответствующей строки кода. Отладчик будет выбирать приостановленный поток и отображать методы этого потока. В редакторе кода будет подсвечена линия кода с установленной точкой останова.

Когда точка останова отключена, ее наличие не влияет на выполнение потока, и при достижении этой точки останова он не приостанавливается.

Чтобы отключить точку останова

  1. Щелкните в панели Свойства по той строке, где установлена точка останова.
  2. Нажмите Ctrl+J (macOS: Cmd+J), чтобы открыть редактор кода. В редакторе будет выделена строка кода, соответствующая выделенной вами строке в панели Свойства.
  3. Щелкните правой кнопкой мыши по точке останова, которую вы хотите отключить, и выберите Выключить точку прерывания из контекстного меню. Метка точки останова будет теперь выглядеть как белый кружок, а соответствующий ей флажок в панели Точки останова будет сброшен.

Чтобы включить точку останова

  1. Щелкните в панели Свойства по той строке, где установлена точка останова.
  2. Нажмите Ctrl+J (macOS: Cmd+J), чтобы открыть редактор кода. В редакторе будет выделена строка кода, соответствующая выделенной вами строке в панели Свойства.
  3. Щелкните правой кнопкой мыши по точке останова, которую вы хотите включить, и выберите Включить точку прерывания из контекстного меню. Метка точки останова будет теперь выглядеть как синий кружок, а соответствующий ей флажок в панели Точки останова будет установлен.

Точки останова со счетчиками выполнения

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

Чтобы установить счетчик выполнения для точки останова

  1. В панели Свойства, щелкните мышью в той строке, на которой установлена точка останова.
  2. Нажмите Ctrl+J (macOS: Cmd+J), чтобы открыть редактор кода. В редакторе будет выделена строка кода, соответствующая выделенной вами строке в панели Свойства. Щелкните правой кнопкой мыши по значку точки останова в вертикальной линейке, идущей по левой границе редактора кода, и выберите Свойства точки прерывания... из контекстного меню.
  3. Откроется диалоговое окно Свойства для....
  4. Установите флажок Счетчик выполнения.
  5. В поле справа введите число срабатываний точки останова, которое должно произойти, чтобы точка останова первый и единственный раз приостановила выполнение модели.
Когда выполнение дойдет до точки останова в n-й раз, модель будет приостановлена. Точка останова при этом будет выключена до тех пор, пока она не будет снова включена либо не будет изменено значение ее счетчика выполнения.

Управление условными точками останова

У точки останова может быть задано разрешающее условие. Точка останова с условием (называемая далее условной точкой останова) будет приостанавливать выполнение потока в одном из следующих случаев:

  • когда разрешающее условие станет истинно
  • когда изменяется результат вычисления разрешающего условия

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

  1. В панели Свойства щелкните мышью в той строке, на которой установлена точка останова.
  2. Нажмите Ctrl+J (macOS: Cmd+J), чтобы открыть редактор кода. В редакторе будет выделена строка кода, соответствующая выделенной вами строке в панели Свойства. Щелкните правой кнопкой мыши по значку точки останова в вертикальной линейке, идущей по левой границе редактора кода, и выберите Свойства точки прерывания... из контекстного меню.
  3. Откроется диалоговое окно Свойства для....

  4. Установите флажок Включать условие (помощник по созданию кода недоступен).
  5. Введите условие для точки останова в расположенном ниже поле.
  6. Если вы хотите, чтобы выполнение модели приостанавливалось при достижении этой точки останова каждый раз, когда заданное условие будет истинно, выберите опцию условие ’истинно’. В этом случае вы должны задать выше условие, результат вычисления которого должен быть булевским — true (истинно) или false (ложно).
  7. Если же вы хотите, чтобы выполнение модели приостанавливалось при достижении этой точки останова каждый раз, когда изменяется результат вычисления разрешающего условия, выберите опцию значение условия изменяется.
  8. Щелкните по кнопке OK, чтобы закрыть диалоговое окно и применить сделанные изменения. Если эта точка останова будет включена и заданное для нее условие будет истинно, то выполнение модели будет приостанавливаться перед выполнением строки кода, на которой была установлена эта точка останова.

Чтобы было легче отличать условные точки останова от безусловных, у значка условной точки останова рисуется вопрос: .

Как мы можем улучшить эту статью?