Debug в intellij idea

R5AM, Александр Ящук, Москва, 2016г.

Отладка – это этап разработки для локализации и устранения ошибок. Для локализации нужно выяснить по какому пути проходит программа и знать значения переменных в определённые моменты работы приложения. Нужно выставить точки останова – в левом поле редактора напротив требуемой строчки кода ЛКМ (Левая Кнопка Мыши), можно использовать Ctrl-F8 для точки останова в строке с курсором.

Типы точек останова:

1 . Line breakpoint – точка , связанная с заданной строкой кода, ставится ЛКМ.
2 . Temporary Line breakpoint – точка, которая сразу удалится после достижения, ставится ЛКМ+Alt, иконка с циферкой 1.
3 . Method breakpoint – точка, срабатывающая при входе в метод или выходе из метода. Позволяет проверять условия входа и выхода. Добавляется зелёным плюсом в окне всех точек, указывается класс и метод, иконка с четырьмя точками.
4 . Exception breakpoint – точка срабатывает при возникновении определённого исключения, к коду не привязана. Добавляется зелёным плюсом в окне всех точек, иконка с молнией.
5 . Field watchpoint – позволяет реагировать на любое изменение или доступ к переменной экземпляра. Добавляется зелёным плюсом в окне всех точек, иконка с минусом, нужно указать полное имя класса и имя поля.
6 . JavaScript/PHP breakpoint – можно точку выставить прямо в HTML коде.
Запустить отладку Shift-F9
Остановить отладку Ctrl-F2
Перезапустить отладку Ctrl-F5
Закрыть окно отладчика Ctrl-F4
Выполнить до следующей точки останова или до этой же точки в цикле или, если точек дальше по коду нет, то закончить отладку и дать завершиться приложению в обычном режиме F9
Шаг без захода в методы F8
Шаг с заходом в методы F7
Шаг с заходом в методы без фильтрации шагов библиотек, конструкторов и т.п. Alt-Shift-F7
Шаг с выходом из текущего метода Shift-F8
Выполнить до курсора Alt-F9
Установить или снять точку останова в строке с курсором Ctrl-F8
Вычислить выражение, например условие цикла Alt-F8
Удалить все точки останова – в окне параметрв точек ( Ctrl-Shift-F8 ) Alt-Del
Просмотр одной/всех точек остановок, изменить параметры точек
— F4 закроет окно с точками останова и перейдёт в коде на точку останова.
— Enabled – временно отключить точку останова.
— Suspend – политика приостановки работы частей приложения при достижении точки останова, если нет галки, то никакие потоки не приостанавливаются:
— All – останавливать все потоки,
— Thread – останавливать только поток, в котором находится точка останова,
— Make Defaul – все вновь создаваемые точки останова будут иметь такую же политику приостановки.
— Condition – условие, при котором сработает точка останова, например a = = 1 . Можно вставить метод,возвращающий boolean
— Log message to console – сообщение в консоли при достижении точки останова.
— Evalute and log – при достижении точки останова посчитать выражение (например, a + 5 и результат отобразить в консоли.
— Remote once hit – точка останова удаляется при достижении.
— Disabled until selected breakpoint is hit – отключить точку останова до любого исключения или до достижения другой точки останова:
— Disable again – после достижения опять отключить
— Leave enabled – после достижения оставить включённой
— Instance filters – ограничивает достижение точки останова только для определённых экземпляров объектов.
— Class filters – указать классы, в которых точка будет срабатывать, и классв, в которых точка не срабатывает.
— Pass count – пропустить определённое количество раз прохождение точки останова.
Ctrl-Shift-F8
Читайте также:  Natural born killers перевод

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

Слева внизу окно " Frames " со стеком вызовов классов в виде иерархии. Можно переходить по стеку вызовов и смотреть с какими аргументами вызывались методы.

В центре внизу окно " Variables " с переменными, которым присвоено значение. При изменении значения у переменной изменяется цвет (на синий) у самой переменной в окне " Variables ".

Справа внизу окно " Watches " для наблюдением за значением определённых добавленных в это окно переменных или выражений, без необходимости перемещаться по древовидным структурам в окне " Variables ". Можно добавлять имена переменных зелёным плюсом или Alt-Insert .

Можно вносить изменения в код, затем перекомпилить изменённый класс Ctrl-Shift-F9 и продолжить отладку без её полного перезапуска.

Можно включить в настройках дебагинга отображение значений переменных прямо в строках кода: " Show values inline ".

Можно быстро отключить точку останова если щёлкнуть по ней ЛКМ с Alt – точка получит зелёную метку.

Есть возможность удалённой отладки при подключении к удалённой JVM.

Есть возможность отлаживать WAR-файлы с использованием встроенных или внешних серверов приложений.

IntelliJ IDEA provides a debugger for Java code. Depending on the installed/enabled plugins, you can also debug code written in other languages.

During a debugging session , you launch your program with the debugger attached to it. The purpose of the debugger is to interfere with the program execution and provide you with the information on what’s happening under the hood. This facilitates the process of detecting and fixing bugs in your program.

Читайте также:  Для правильной регистрации активизируйте cookies

There is a variety of ways how you can run a debugging session, however, for simplicity this documentation assumes that you are building and running your project from IntelliJ IDEA. This is the most common case, and it has fewer limitations as compared to more advanced techniques. The procedures for attaching to a process and debugging a remote application are covered in separate sections.

Before debugging

Make sure the Generate debugging info option is turned on (the default setting) in Settings/Preferences | Build, Execution, Deployment | Compiler | Java Compiler .

This setting is not absolutely required for debugging, however we recommend leaving it enabled. Disabling it allows you to save disk space at the cost of some debugger functionality.

Configure common debugging properties and behavior in Settings/Preferences | Build, Execution, Deployment | Debugger .

If you are new to debugging, the out-of-the-box configuration will work for you. The topics about each debugger functionality provide references and explain the related settings where applicable. If you are an advanced user and looking for some particular property, see the Debugger reference section.

Define a run/debug configuration if you are going to use a custom one. This is required if you need some arguments to be passed to the program or some special activity to be performed before launch. For more information on how to set up run/debug configurations, refer to the Work with run/debug configurations section. Most of the time, you don’t need this to debug a simple program that doesn’t expect arguments or have any special requirements.

General debugging procedure

There is no one-size-fits-all procedure for debugging applications. Depending on actual requirements you may have to use different actions in different order. This topic provides general guidelines, which represent typical debugging steps. The details on how and when to use particular features are provided in the respective topics.

Define where the program needs to be stopped. This is done using breakpoints. Breakpoints are special markers, which represent places and/or conditions when the debugger needs to step in and freeze the program state. A program, which has been frozen by the debugger is referred to as suspended .

The alternative to using breakpoints is manually suspending the program at an arbitrary moment, however this method imposes some limitations on the debugger functionality and doesn’t allow for much precision as to when to suspend the program.

Читайте также:  Intel wireless bluetooth что это

Run your program in debug mode. Just like with regular running of the program, you can at the same time.

After the program has been suspended, use the debugger to get the information about the state of the program and how it changes during running.

The debugger provides you with the information about variable values, the current state of the threads, breakdown of objects that are currently in the heap, and so on. It also allows you to test your program in various conditions by throwing exceptions (for example, to check how they are handled) or running arbitrary code right in the middle of the program execution.

While these tools let you examine the program state at a particular instant, the stepping feature gives you the control over step-by-step execution of the program. By combining the tools you can deduce where the bug is coming from and test your program for robustness.

When you have determined what needs to be fixed, you can do it without terminating the session. For this purpose, IntelliJ IDEA provides a functionality allowing you to adjust and reload pieces of your code on the fly. This approach is covered in the Reload modified classes topic.

If you are completely new to debugging, we recommend that you complete the Debugging Your First Java Application tutorial. If you are already familiar with the debugger and want to get a grip on the more advanced features, take a look at Java Debugging Deep Dive.

Очередь просмотра

Очередь

  • Удалить все
  • Отключить

Хотите сохраните это видео?

  • Пожаловаться

Пожаловаться на видео?

Выполните вход, чтобы сообщить о неприемлемом контенте.

Понравилось?

Не понравилось?

Текст видео

Отладка кода в редакторе IntelliJ IDEA (PhpStorm, PyCharm, WebStrom, RubyMine) проходит очень комфортно благодаря обширному инструментарию, добавленному компанией JetBrains в свои продукты.

В этом видео мы рассматриваем как добавлять, удалять и отключать breakpoints, breakpoints на значение переменных (или состояние приложения), breakpoints на exceptions и breakpoints на поля.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock detector