Post

디버깅(IntelliJ)

디버그를 알기 전에는 오류가 있을 때 어느 부분에 오류가 발생했는지 알고자 System.out.prinln 등 찍어보고는 했는데 디버그를 사용하면 편하게 오류 지점을 찾아낼 수 있다.


살펴보고자 하는 부분에 중단점(break point)을 찍고 디버그 버튼(벌레 모양 버튼)을 누른다. 단축키는 windows 기준 Shift+F9이다.

1

그러면 다음과 같이 하단에 표시가 된다.

1

좌측에는 break point가 잡히기까지 실행된 스택들을 나타낸다. 수많은 스택을 타고와서 메서드가 실행된 자리까지 어떤 스택들이 실행되었는지를 나타내고 우측, variables는 지역 스코프에 지금 담겨져 있는 변수들이 전부 나온다.

또한 눈처럼 보이는 버튼 우측의 Resume 버튼은 다음 브레이크 포인트로 넘어갈 수 있게 된다.

1

위의 사진은 Resume 버튼을 한번 눌렀을 경우로 값이 변한 것을 볼 수 있다.

꺽인 화살표처럼 생긴 Step Over는 다음 줄로 넘어가는 것이다.

즉, resume는 다음 break point로 넘어가는 것이고, step over는 다음 줄로 넘어가는 것이다.

하단을 가리키는 화살표 Step Into는 다음줄로 가게된다. 만약 생성자라면 생성자로 들어가게 되는 것이다.

상단을 가리키는 화살표 Step out은 스택을 나오게 되는 것이다. 실행을 시키고 스택을 나오게 된다. Step Into의 정반대라고 생각하면 된다.

Drop frame 버튼은 실행했던 거를 다 취소하는 것이기 때문에 실행되지 않고 Step Out 된다는 차이가 있다.

1

break point에 우클릭을 하면 컨디션을 설정할 수 있다. boolean 값을 주면 되는데

예를들어 for문 60번을 돌아야되는데 58번 째의 값을 알고싶은데 실수로 59번째로 넘어가는 경우 처음부터 다시 해야되는 번거로움이 존재한다.

user.getNanme().equals = "~~" 이런식으로 특정 부분을 지정해서 사용할 수 있다.

1

컨디션을 설정하면 다음과 같이 물음표가 생긴다.

This post is licensed under CC BY 4.0 by the author.