개요
제가 디버거 모드를 이용하면서 Step Into, Resume 등 헷갈리는 기능도 있고 디버거를 잘 활용하고 싶어 작성하게 되었습니다. 또한 디버거 이용하는 방법에 잘 모르는 개발자 분들을 위해 작성하게 되었습니다.
1. Break Point
47번 줄, 48번 줄을 보면 빨간색 점이 찍혀있는 것을 볼 수 있다. 이는 Break point로 디버거 모드로 실행시켰을 때 코드 실행이 멈추는 지점
2. 디버거 모드로 실행시키는 방법
프로젝트 화면 상단에 실행시키는 버튼 옆에 벌레같이 생긴 버튼을 누르면 디버거 모드로 실행된다.
3. Step Over
Step Over는 코드 다음 줄로 넘어간다. method call 안으로 들어가지 않는다.
4. Step Into
지금 대기하고 있는 method call 내부로 들어간다.
Step Into를 누르면 아래의 화면과 같이 색이 나오는데 이는 색이 나오는 곳 중 어디로 들어갈 것인지 나타내는 색이다.
어떤 method call 안으로 들어갈 것인지 선택하면 된다.
5. Step Out
Step Into의 반대 개념으로 들어간 스택에서 나오는 기능이다. 근데 나오는데 그 스택을 실행을 시키고 빠져나온다.
6. Drop Frame
Step Out과 유사한 기능으로 그 스택을 실행시키지 않고 빠져나온다.
7. Resume Program
다음 Break Point로 이동한다.
8. Run to Cursor
Break Point를 찍고 Resume 버튼으로 다음 Break Point로 이동을 하였는데 Run to Cursor를 이용하면 Break Point를 찍지 않고 커서를 이용해 커서를 클릭하는 위치로 이동한다.
9. Condition
예를 들어 Step Into를 사용하면 for문이 50번까지 돌 때 49번째의 값을 확인하고 싶으면 Step Into를 49번 실행시켜야 한다. 하지만 Break Point에 우클릭을 해서 Condition에 확인하고 싶은 값의 Boolean 형태로 값을 넣는다. 그러면 해당하는 for문의 값만 실행시킬 수 있다.
10. Evaluate Expression
멈춘 지점에서 이런저런 값을 계산해 볼 수 있다.
Code fragment에서 실행하고 싶은 코드를 작성하고 Evaluate를 누르면 실제 콘솔에서 실행된 것을 확인할 수 있다.
'개발 > Spring' 카테고리의 다른 글
로깅이(SLF4J) 뭐야 그냥 print 찍으면 되는거 아니야? (0) | 2022.10.26 |
---|---|
addAttribute VS addFlashAttribute (0) | 2022.07.26 |
HttpServletRequest, 커맨드 객체, @ModelAttribute (0) | 2022.07.19 |