IntelliJ Debugging
이번 포스팅은 IntelliJ에서의 Debugging을 알아보려한다.
Step Over, Step Into 정도의 기능만 사용했었지만, 좀 더 자세히 알아보려한다.
Break Point
확인하고 싶은 라인에서 해당 부분을 클릭 또는 ctrl + F8
단축키를 이용하여 Break Point를 추가한다.
Condition에 조건을 등록하여 특정 상황에만 break가 되도록 설정할 수 있다.
다양한 디버깅 기능
Resume (F9)
다음 Break Point로 이동
여러 Break Point가 있을 때, 필요없는 중간과정을 생략하고 다음 Break Point로 넘어갈 수 있다.
Step Over (F8)
현재 Line에서 다음 Line으로 이동
다만 Line 내에 걸려있는 동작(메서드 등)은 모두 실행 후 다음 Line으로 넘어간다.
Step Into (F7)
현재 Line에서 실행하려는 동작(메서드 등)으로 이동한다.
해당 Line에서 실행하려는 동작은 test2 참조변수의 method() 메서드이다.
F7
로 해당 메서드로 진입을 하게 된다.
Force Step Into (alt + shift + F7)
Step Into와 유사한 동작이지만, getter
, setter
와 같은 메서드을 Skip하는 설정을 해놓았다면 해당 기능은 Skip을 무시하고 진입한다.
Step Out (shift + F8)
현재 Line에서 Step Into로 호출한 Line으로 복귀
Step Into를 실행하여 현재 메서드를 수행하고 있다.
shift + F8
을 누르면 남은 기능을 모두 수행하고 호출한 Line으로 다시 복귀한다. 즉, Step Into로 들어와 필요한 부분을 확인한 후 빠져나가고 싶을 때 이 기능을 사용한다.
Run to Cursor (alt + F9)
포커스 되어있는 Line으로 이동
원하는 위치로 이동하고 싶을 떄, 해당 Line에 커서를 위치시킨다. 다만 중간에 Break Point가 껴있다면 Break Point로 이동된다.
Evaluate (alt + F8)
Break된 라인에서 실행 가능한 동작들을 수행해볼 수 있다.
Expression에 원하는 동작을 입력하고, 매개변수까지 바꾸어가며 미리 수행해볼 수 있다.
ctrl + alt + F8
로는 코드에서 간단하게(Quick) 미리보기로 가능하다.
Watch
Evaluate와 동일한 기능을 수행한다.
다만 Watch는 필요할 떄 계속 수행하는 Evaluate와 달리 따로 분리된 공간에 등록되어 계속 확인할 수 있다는 장점이 있다.
Call Stack
해당 Line에 올 때까지 호출된 call stack이 출력된다.
이전에 어떤 매개변수가 넘어왔는지 확인할 수 있으며, Variables
와 Watches
로 값과 코드를 확인하고 예측할 수 있다.