이클립스 디버깅 관련 기능

Display

Display 뷰에는 현재 스택 프레임의 컨텍스트에서 실행할 수 있는 모든 종류의 수식을 입력하고 실행할 수 있다. 현재 컨텍스트에서 볼 수 없는 변수나 메서드를 사용하거나 문법적으로 잘못된 수식을 평가하려고 하면 에러가 표시된다.


특정 컨텍스트에서 수식을 실행시켜 결과를 확인하고 싶을 때 사용
사용자 삽입 이미지

Inspect

Display 뷰에는 확인하고 싶은 수식을 마음대로 입력할 수 있는 장점이 있지만, 수식의 평가 결과가 문자열로만 표시되는 단점이 있다. 수식의 평가 결과가 객체일 경우에는 해당 객체가 toString() 메서드를 이용해 문자열로 변환된 결과만을 보여주므로 분편하다.

수식 평가의 결과로 나온 객체를 좀더 자세히 확인하고 싶다면 Inspect 기능을 이용할 수 있다. 에디터에서 수식을 선택한 다음 컨텍스트 메뉴에서 Inspect를 선택(또는 Ctrl+Shift+I)하면 아래 그림과 같이 해당 수식의 평가 결과가 팝업에 표시된다.사용자 삽입 이미지

이 상태에서 Ctrl+Shift+I 키를 한번 더 누르면 팝업의 내용이 Expressions 뷰로 이동한다.

사용자 삽입 이미지
특정 컨텍스트에서 코드 실행 결과가 객체로 리턴되는 경우 객체의 내부를 자세히 살펴보는 데 사용

Watch

어떤 경우에는, 프로그램을 한 스텝씩 진행할 때마다 어떤 수식으 결과를 지속적으로 평가하며 추적하고 싶을 것이다. 매번 Inspect/Display 기능을 쓰며 변수 값을 추적하는 것은 매우 번거로운 작업일 수 있다. 이럴 때는 Watch 기능을 이용할 수 있다. 해당 수식이 이미 변수에 저장되어 사용되고 있다면 그 변수를 Variables 뷰에서 확인해도 충분하지만, 변수에 대입되지 않은 수식이나, 복잡한 수식 중 일부분의 값이 어떻게 변하는지 추적하고 싶을 때는 Watch 기능을 사용할 수 밖에 없다. Watch는 특정 수식을 스텝이 진행될 때마다 매번 다시 평가하여 Expressions 뷰에 표시하는 기능이다. 에디터에서 추적할 수식을 선택한 다음 컨텍스트 메뉴에서 Watch를 선택하면 아래 그림고 같이 Expressins 뷰에 Watch 항목이 추가된다. 수식 “(l+u)/2″가 Watch 되고 있는 항목인데, 바로 위에 있는 Inspect 항목과 아이콘이 다르므로 쉽게 구분할 수 있다.

사용자 삽입 이미지

Expressions 뷰에서 컨텍스트 메뉴를 띄워 Add Watch Expression을 선택하면 아래 그림과 같은 다이얼로그가 뜨는데 여기에 수식을 입력해 Watch 항목을 추가할 수 있다. 또한 Inspect로 이미 등록된 항목을 선택한 다음 컨텍스트 메뉴에서 Convert to Watch Expression을 선택해 Inspect 항목을 Watch 항목으로 바꿀 수도 있다.사용자 삽입 이미지

 

코드의 실행에 따라 지속적으로 변하는 수식으 값을 추적하는 데 사용논리적 구조 보기(logical structure)

EmployeeList 객체에 있는 직원 리스트를 확인하기 위해 list 필드를 Expressions 뷰에 Inspect 항목으로 추가해 보자. list 필드는 java.util.Vector 타입이고 Expressions 뷰에서 트리를 펼치면 아래 그림과 같은 형식으로 보일 것이다.

사용자 삽입 이미지

그런데 우리가 Vector나 Map 등의 컬렉션 객체를 Expressions 뷰에서 보려는 경우는 그 내부 구조를 모두 보고 싶은 경우 보다는 컬렉션 객체가 포함하고 있는 객체를 보고 싶은 경우가 많을 것이다. 이럴 때 논리적 구조 보기를 이용하면 해당 객체를 좀더 컴팩트하고 의미있는 형태로 볼 수 있다. 뷰 툴바에 있는 Show Logical Structure 버튼을 누르면 아래 그림과 같이 Vector 내부에 있는 다른 속성은 사라지고 우리가 관심있는 Vector가 포함하고 있는 객체의 목록만 표시된다.

사용자 삽입 이미지

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다