여기 디버그 테스트 용 DebugTest용 클래스가 있는데
내용을 보면 int 타입의 배열 arr의 크기는 5인데
하단 for문에서 0부터 7까지 진행하기 때문에
0,1,2,3,4 까지는 돌아가다가 그 이후부터는 에러가 뜰 것이다
실제 코딩 시에는 이보다 훨씬 복잡하고 예측 불가능한 부분에서 에러가 발생하는 만큼
디버그를 활용하면 정확히 어느 순간에 에러가 발생하는지 알아낼 수 있다
먼저 이클립스 우측 상단에 있는 Open Perspective를 누르면
이렇게 창이 뜨는데 여기서 Debug를 선택해 준 뒤 Open을 눌러주면
우측 상단에 디버그가 추가된 것이 보인다
이후 코드로 돌아가 원하는 지점에 저렇게 더블 클릭을 해 주면
원 하나가 생기는데 이게 breakpoint고
이 지점부터 코드를 한줄씩 진행 가능하다
디버그 클릭 뒤 Breakpoints 탭을 보면 Breakpoints를 어디에 지정했는지도 확인 가능하다
다음으로 실행 시 F11을 눌러 디버그로 실행시켜 주면
저런 창이 뜨는데 Switch를 누르면 바로 디버그 창으로 변경된다
내가 설정한 Breakpoint에서 부터 시작해 한 줄씩 진행할 수 있는데
주요 버튼들은 다음과 같다
Resume(F8)
- 다음 Breakpoint로 넘어감
Step Into(F5)
- 한 줄씩 지나가며 메소드를 만날 경우에는 그 메소드 안까지 들어감
Step Over(F6)
- 한 줄씩 지나가며 메소드를 만날 경우에는 따라 들어가지 않고 진행
설정한 Breakpoint들은 Remove All Breakpoints 버튼을 눌러 한번에 모두 없앨 수 있다
마지막으로 위 예제에 사용한 코드는 아래와 같다
public class DebugTest {
public void call() {
System.out.println("Call!");
}
public static void main(String[] args) {
int arr[] = new int[5]; // int 타입의 배열 arr 크기 5로 선언
DebugTest dt = new DebugTest(); // 객체화
dt.call(); // call 메소드 호출
for(int i = 0; i<=4; i++) { // 0, 1, 2, 3, 4까지 진행 후 5에서 에러 발생
System.out.println(arr[i] = i);
}
System.out.println("END");
}
}
'Language > Java' 카테고리의 다른 글
자바 소켓 통신 서버와 클라이언트간 메세지 주고받기 (0) | 2019.12.18 |
---|---|
자바 소켓 통신 서버 & 클라이언트 작성 및 연결해보기 (2) | 2019.12.12 |
자바 Map 사용법부터 출력까지 (1) | 2019.12.03 |
자바 Set 사용법부터 출력까지 (0) | 2019.11.27 |
자바 set 정렬 기준 및 예제 (0) | 2019.11.26 |
댓글