IntelliJ Debugging

IntelliJ Debugging

이번 포스팅은 IntelliJ에서의 Debugging을 알아보려한다.

Step Over, Step Into 정도의 기능만 사용했었지만, 좀 더 자세히 알아보려한다.

Break Point


BreakPoint

확인하고 싶은 라인에서 해당 부분을 클릭 또는 ctrl + F8 단축키를 이용하여 Break Point를 추가한다.

condition

Condition에 조건을 등록하여 특정 상황에만 break가 되도록 설정할 수 있다.

다양한 디버깅 기능


Resume (F9)

resume

다음 Break Point로 이동

image

여러 Break Point가 있을 때, 필요없는 중간과정을 생략하고 다음 Break Point로 넘어갈 수 있다.

Step Over (F8)

image

현재 Line에서 다음 Line으로 이동

image

다만 Line 내에 걸려있는 동작(메서드 등)은 모두 실행 후 다음 Line으로 넘어간다.

Step Into (F7)

image

현재 Line에서 실행하려는 동작(메서드 등)으로 이동한다.

image

해당 Line에서 실행하려는 동작은 test2 참조변수의 method() 메서드이다.

image

F7로 해당 메서드로 진입을 하게 된다.

Force Step Into (alt + shift + F7)

image

Step Into와 유사한 동작이지만, getter, setter와 같은 메서드을 Skip하는 설정을 해놓았다면 해당 기능은 Skip을 무시하고 진입한다.

Step Out (shift + F8)

image

현재 Line에서 Step Into로 호출한 Line으로 복귀

image

Step Into를 실행하여 현재 메서드를 수행하고 있다.

image

shift + F8을 누르면 남은 기능을 모두 수행하고 호출한 Line으로 다시 복귀한다. 즉, Step Into로 들어와 필요한 부분을 확인한 후 빠져나가고 싶을 때 이 기능을 사용한다.

Run to Cursor (alt + F9)

image

포커스 되어있는 Line으로 이동

Animation

원하는 위치로 이동하고 싶을 떄, 해당 Line에 커서를 위치시킨다. 다만 중간에 Break Point가 껴있다면 Break Point로 이동된다.

Evaluate (alt + F8)

image

Break된 라인에서 실행 가능한 동작들을 수행해볼 수 있다.

image

Expression에 원하는 동작을 입력하고, 매개변수까지 바꾸어가며 미리 수행해볼 수 있다.
ctrl + alt + F8로는 코드에서 간단하게(Quick) 미리보기로 가능하다.

Watch

image

Evaluate와 동일한 기능을 수행한다.
다만 Watch는 필요할 떄 계속 수행하는 Evaluate와 달리 따로 분리된 공간에 등록되어 계속 확인할 수 있다는 장점이 있다.

Call Stack

Animation

해당 Line에 올 때까지 호출된 call stack이 출력된다.
이전에 어떤 매개변수가 넘어왔는지 확인할 수 있으며, VariablesWatches값과 코드를 확인하고 예측할 수 있다.