로컬 디버거는 프로그램과 동일한 시스템에서 수행 중인 프로그램을 디버깅할 수 있도록 다음과 같은 기능을 제공한다.
Debug View를 통해 코드를 집중적 분석하기 위해 Break point를 설정하도록 기능을 지원한다.
프로그램을 한 스텝씩 진행하면서 프로그램의 실행흐름과 내부 상태를 확인할 수 있다.
스탭 필터 기능을 통해 특정 메소드 내부로 들어가지 않는 기능을 제공한다.
수행 중인 프로그램을 중지시키지 않고 상태를 확인할 수 있는 기능을 제공한다.
디버깅 중 프로그램의 의심되는 부분을 집중적으로 분석하기 위해 Break point를 설정해 디버깅 포인트를 지정한 부분을 하이라이트 한다.
에디터의 왼쪽에 있는 Marker bar를 더블클릭 하거나 팝업 메뉴를 통해 Toggle Breakpoint를 선택하여 추가한다.
Marker bar에서 팝업 메뉴를 통해 Disable Breakpoint 를 선택하면 비활성화되어 특정 Breakpoint에서 실행을 멈추지 않고 수행하거나 Breakpoint를 삭제하지 않아도 된다.
워크스페이스에서 설정한 모든 Breakpoint를 View를 통해 보여주어 관리 편의성을 제공한다.
디버깅 중 프로그램의 의심되는 부분을 집중적으로 분석하기 위해 Break point를 설정해 디버깅 포인트를 지정한 부분을 하이라이트 한다.
Method 호출부라도 Method 안으로 들어가지 않고 현재 코드에서 한 스텝식 진행한다. 호출하는 Method 내부 동작엔 관심이 없고, 현재 코드 블록에 집중할 때 사용한다.
Dubug View에서 선택한(실행 중이던) 쓰레드를 멈춘다. 이렇게 멈춘 경우 멈춘 쓰레드의 현재 호출 스택이 표시되고 Variables View에 최상위 스택 프레임에서 볼 수 있는 변수들이 보여진다.
스탭 필터링 기능을 통해 필터링 대상 프로그램의 경우 Step Over와 같이 동작하고, 필터링 대상이 아니면 Step Into와 같이 동작한다. Debug View의 Use Step Filters 버튼을 눌러 활성화 시킬 수 있다.
모든 synthetic method를 필터링한다. synthetic method는 어떤 클래스를 컴파일할 때 언어 스펙을 만족시키기 위해 컴퍼일러가 임의로 정의해 바이트 코드에 추가한 method를 의미한다. 이런 method는 일반적으로 Application 프로그래머가 디버깅할 필요가 없다.
모든 클래스의 정적 초기화 블록과 정적 멤버 초기화 코드를 필터링한다.
모든 생성자를 필터링한다.
스텝 필터링을 위한 default 옵션값으로
Variables View를 통해 메소드에서 사용 중인 변수값의 상태를 확인할 수 있는 기능을 지원한다.
다음에 첨부된 Java 소스를 사용하여 위의 디버깅 방법을 테스트할 수 있다. debug_sample.zip