Рубрики
Без рубрики

Отлаживайте Как Чемпион

Узнайте, как вы можете заставить свой отладчик работать на вас, а не зависеть от его милости. Вот несколько пробелов, которые вы можете реализовать, чтобы сузить весь процесс отладки. С пометкой java, debug, open source, новички.

Как гласит Закон Парето: разработка программного обеспечения – это 20% времени разработки и 80% отладки.

Представьте, насколько мощным вы могли бы стать, если бы сократили время отладки и сделали процесс отладки более эффективным, найдя первопричину проблемы в вашем коде или поняв рабочий процесс вашего алгоритма.

Было бы здорово отточить этот критический навык и стать исключительным разработчиком в поиске “неожиданных функций”, известных как ошибки.

Отладка – это нечто большее, чем просто поставить несколько точек останова и скрестить пальцы, чтобы программа достигла их.

Как работает “Java Debug”?

Когда JVM запущена, можно запустить сеанс отладки Java и взаимодействовать с JVM через протокол JDWP.

Этот JDWP (Java Debug Wire Protocol) описывает формат отладочной информации и запросов между отладчиком и отладчиком.

Здесь “отладчиком” может быть самый простой, JDB (Java DeBugger), который представляет собой простую командную строку, предоставляющую интерфейс для проверки и отладки локальной или удаленной JVM.

Кроме того, это может быть отладчик IDE, поэтому ваш отладчик IntelliJ | Eclipse | Netbeans типичен для вашей IDE, он предоставляет графический интерфейс для взаимодействия с JVM через JVM TI (JVM Tool Interface), вот почему каждый отладчик IDE сильно отличается друг от друга, хотя они должны реализовывать тот же интерфейс.

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

  • Установите точки останова до возникновения исключения или неправильного рабочего процесса.
  • Установите другую точку останова после, чтобы убедиться, что все в порядке.
  • Сойди с ума от того, что происходит посередине.

Давайте начнем с моей любимой продвинутой техники: установите точку останова в исключении! Ни до, ни после.

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

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

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

Точки наблюдения

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

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

Это очень полезно, когда вы знаете условия, необходимые для достижения точки выполнения. Вы должны установить флажок для условия в свойствах Точки останова и написать логическое выражение – когда это выражение вернет значение true, Точка останова будет достигнута.

Точки останова метода

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

Следите за Выражениями лиц

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

Чтобы сделать это, выберите фрагмент кода, который вы хотите просмотреть. В данном случае это был ResultSet.getString(“имя”). Это просто потому, что я хочу посмотреть, как меняется название штата.

Это может помочь вам, когда у вас нет члена класса для установки контрольной точки, поскольку ее можно рассматривать как временную локальную переменную watchpoint.

Записи

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

Есть еще какие-нибудь мысли? Делитесь в комментариях!

Оригинал: “https://dev.to/pedes/debug-like-a-champion”