애플리케이션 실행이 비정상적이거나 구현한 코드가 의도한 대로 동작하지 않는 경우 IDE의 디버깅 모드를 통해 문제를 분석하고 해결할 수 있는 방안을 찾을 수 있습니다. 본 포스팅에서는 IntelliJ 환경에서 디버깅 모드를 실행하는 방법을 정리하고 활용 방안에 대한 내용을 쌓아갈 예정입니다.
Break Point
애플리케이션을 구동하는 중에 Break Point를 사용하려면 Debug 모드여야 하기 때문에 로컬 개발 환경에서는 Run보다는 Debug로 실행하는 것이 편리하다.
코드 실행 중 Break를 걸어서 상태를 확인하고 싶은 구간이 있다면 사진과 같이 라인 넘버를 클릭하여 Break Point를 만들 수 있다. 애플리케이션이 실행되어 Break Point가 지정된 라인이 실행되는 시점에 멈추게 되고, 이때 코드 실행에 있어서 관련된 값들을 확인할 수 있다.
조건을 부여하여 실행하고 싶은 경우에는 Break Point를 우클릭해서 지정할 수 있다. 특히 반복문에서 특정 값이 들어왔을 때의 수행을 확인하고 싶을 때 유용하다.
디버깅 버튼
Break Point에 Break가 걸리면 아래의 화면으로 바뀌고, 여러 버튼들을 사용할 수 있다.
- Resume Program: 다음 Break Point로 이동
- Step Over: Break Point가 걸린 라인 실행 후 다음 라인 이동 (22번 → 23번 라인)
- Step Into: Break 된 라인에서 실행하고 있는 라인으로 이동
- Force Step Into: 실행 라인으로 이동하나, Stepping을 무시
- Step Out: 현재 위치에서 호출한 곳으로 이동, Step Into를 통해 진입한 라인에서 빠져나올 때 사용
- Run to Cursor: 현재 포커스를 두고 있는 라인으로 이동, 단발성으로 Break를 걸고 싶을 때 사용
Evaluate & Watch
Break 된 상태에서는 애플리케이션의 실행이 정지된 상태라고 할 수 있는데, 이때 코드를 실행할 수 있는 방법에는 Evaluate와 Watch 두 가지가 있다.
- Evaluate: 코드 수동 실행
- Watch: 삭제하지 않는 한 Break Line이 실행될 때마다 자동 실행
Call Stack
디버깅 화면에서의 좌측에서는 Break Line까지 오기까지의 Call Stack이 출력된다.
각 라인을 클릭하면 이전 Call Line으로 이동할 수 있다.
📚 Reference
- https://jojoldu.tistory.com/149
'Back-End > Java' 카테고리의 다른 글
생성자에 매개변수가 많다면 빌더를 고려하라 | Builder pattern, Lombok @builder (0) | 2022.10.15 |
---|---|
[Java] StringBuilder의 사용과 String으로 변환 방법 (0) | 2022.08.13 |
[Java] StringifyJSON (0) | 2022.07.22 |
스레드(Thread) (0) | 2022.07.19 |
파일 입출력(I/O) (0) | 2022.07.18 |
댓글