본문 바로가기
🛠️DevTools/Intellij IDEA

[Intellij IDEA] 디버깅 feat. spring boot

by inbeom 2023. 8. 27.
728x90

💡 디버깅 모드 실행

실행 버튼 옆에 벌레를 누르면 디버깅 모드로 애플리케이션이 실행된다.

디버깅 모드로 실행된 애플리케이션은 동작 시 BreakPoint된 지점에서 동작이 멈추며 console에 로그 정보가 찍힌다.

*왼쪽(Debugger)은 현재까지 실행된 스택이 표시됨. *오른쪽(Variables)은 지역 스코프에 담겨진 변수가 표시된다.

 

Debuging Button

resume

  • 다음 BreakPoint까지 실행한다
  • 더 이상 BreakPoint가 없으면 종료

step over

  • 다음 줄로 이동 (return시 return된 지점으로 이동)

step into

  • 메서드 안으로 한 단계 들어감

step out

  • 이전 지점으로 나옴

run to cursor

  • BreakPoint를 찍지 않아도 커서가 위치한 라인으로 resume가능

 

BreakPoint - [Condition]

BreakPoint에서 우클릭 하여 Condition을 설정할 수 있다.

  • Condition설정 시 ?표시가 뜨며 해당 BreakPoint는 Condition에 명시된 조건이 맞는 경우에만 break가 걸리게 된다.
  • Ex> 반복문에 BreakPoint를 걸었을 시 모든 반복마다 계속 resume을 하며 확인해야 하지만 해당 BreakPoint에 Condition으로 조건user.getName().equals(”사과”)을 걸게 되면 해당 반복 시기를 바로 확인할 수 있다.

 

Evaluate

  • 현재 스코프에서 사용할 수 있는 메서드를 실행하여 결과값을 확인할 수 있다.

Watch

  • Evaluate와 비슷하지만 확인할 값을 미리 설정해두어 값을 확인할 수 있다.

Variables화면에서 우클릭하여 New Watch하여 추가할 수 있음

 

 💡 Debuging Tip.

Error잡기

  1. 디버깅 중 step over 또는 resume로 다음 동작을 실행했을 때 ExceptionHandeler를 타게되면 해당 부분이 에러가 발생한 지점이다.
  2. 에러가 발생한 라인에서 다음 동작을 실행하면 Exception으로 빠지기 때문에 실행하지 말고 Evaluate로 해당 라인을 실행시켜보면 stackTrace에서 오류 지점을 확인할 수 있다.
  3. 그렇게 찾은 오류 지점에서 다시 BreakPoint를 걸어 값을 확인한다.

 

  • Evaluate 창에서 shift+enter를 치면 여러 줄 입력이 가능하다.
  • resume으로 모든 BreakPoint를 확인한 후 다시 api를 요청하면 처음부터 디버깅 할 수 있다.
728x90