-
intellij로 디버깅 하기📖 개발 공부 2023. 6. 6. 19:40
intellij IDE로 개발을 하고 있는데, 개발을 하면서 실행 결과를 봐야할 때 디버깅을 많이 이용한다.
하지만 디버깅에 여러 방법이 있어서 많이 헷갈렸다 (나만!?)
확실히 각 기능들을 이해하고, 디버깅하기 위해 정리해보려고 한다.
요기 있는 디버깅 버튼들을 알아볼 것이다! (+ resume 버튼)
resume
다음 break point로 이동한다.
step over
현재 break 된 시점에서 다음 라인으로 이동한다.
그렇기 때문에 다음 break point로 이동하지 않고, break된 시점의 명령어 실행 후 다음 라인으로 이동된다.
(이 기능을 몰라서 모든 라인에 break point를 걸었다면, step over을 사용하자.)
step into
break된 라인에서, 실행되고 있는 라인으로 이동한다. (내부로 이동)
force step into
다음 실행되는 라인으로 이동하나, step into와 달리 Stepping을 무시하고 진행한다.
Stepping 기능은 디버그의 설정 기능 중 하나로 디버깅 중 건너뛸 수 있는 요소를 지정할 수 있다.다음 break 된 라인에서 step into와 force step into 모두 실행해보았다.
step into
force step into
step into에서는 Response 클래스로 이동하는 것을 알 수 있고, force step into에서는 다음 라인으로 이동하는 것을 알 수 있다. (자동으로 지정된 stepping 설정이 있나보다.)
step out
break된 라인에서, 호출한 곳으로 이동한다. (뒤로가기)
보통 step into로 들어간 라인을 빠져나갈 때 많이 사용한다.
run to cursor
해당 커서로 이동한다.
원래라면, break point를 찍고 resume해야 하지만 바로 해당 커서로 이동할 수 있다.
요 val defaultOption = SearchOption.DefaultOption<Long?>( 부분에서 break 되었는데, 사진과 같이 size 쪽에 커서를 두고 run to cursor 버튼을 누르면 다음과 같이 이동한다.
evaluate
break 된 상태에서 코드를 실행시킬 수 있다.
이를 클릭하면 다음과 같은 팝업창이 나온다. 여기에서 코드를 실행시켜볼 수 있다.
요렇게 코드를 실행시켜 not empty인지 확인해볼 수 있다.
특정 조건에서 break를 걸고싶은 경우
break point에 우클릭을 하면 다음과 같이 조건으로 break를 걸 수 있다.
lastId가 0일 경우 break를 걸도록 했다.
요렇게 물음표 말풍선 아이콘이 나온다!
lastId가 null인 경우엔 해당 break point가 무시되어 다음 break point로 바로 이동한다.
lastId가 0일 경우 다음 사진과 같이 해당 라인에서 break 된다.
디버깅 할 때 특정 기능들만 사용했었는데, 시야가 넓어진 느낌이당
evaluate 기능은 정리를 하면서 처음 알게되었다. 많이 활용할 수 있을 것 같다!
이제 디버깅 기능이 어려워서 println() 으로 디버깅하는 경우가 없길!!
반응형'📖 개발 공부' 카테고리의 다른 글
[Kubernetes] sidecar pattern (사이드카 패턴) (0) 2023.07.10 비동기 asynchronous (0) 2023.07.02 배포 전략 (Rolling Update, Blue/Green, Canary) (0) 2023.04.09 Eventual Consistency (0) 2023.04.01 [Resilience4j] Circuit Breaker Config 정리 (0) 2023.03.19