로컬 디버거는 프로그램과 동일한 시스템에서 수행 중인 프로그램을 디버깅할 수 있도록 다음과 같은 기능을 제공한다.
Debug View를 통해 코드를 집중적 분석하기 위해 Break point를 설정하도록 기능을 지원한다.
프로그램을 한 스텝씩 진행하면서 프로그램의 실행흐름과 내부 상태를 확인할 수 있다.
스탭 필터 기능을 통해 특정 메소드 내부로 들어가지 않는 기능을 제공한다.
수행 중인 프로그램을 중지시키지 않고 상태를 확인할 수 있는 기능을 제공한다.
프로그램의 진행 중인 변수의 값을 확인하도록 지원한다.
디버깅 중 프로그램의 의심되는 부분을 집중적으로 분석하기 위해 Break point를 설정해 디버깅 포인트를 지정한 부분을 하이라이트 한다.
에디터의 왼쪽에 있는 Marker bar를 더블클릭 하거나 팝업 메뉴를 통해 Toggle Breakpoint를 선택하여 추가한다.
Marker bar에서 팝업 메뉴를 통해 Disable Breakpoint 를 선택하면 비활성화되어 특정 Breakpoint에서 실행을 멈추지 않고 수행하거나 Breakpoint를 삭제하지 않아도 된다.
워크스페이스에서 설정한 모든 Breakpoint를 View를 통해 보여주어 관리 편의성을 제공한다.
특정 횟수에 도달한 경우에 멈추게 정의하여 프로그램을 멈추도록 지원한다.
디버깅 중 프로그램의 의심되는 부분을 집중적으로 분석하기 위해 Break point를 설정해 디버깅 포인트를 지정한 부분을 하이라이트 한다.
Debug View의 Toolbar 에서
프로그램을 한 스텝 진행하되, Method 호출부라면 실행 코드를 Method 안으로 옮긴다. 호출하는 Method 내부 동작을 확인할 때 사용한다.
Method 호출부라도 Method 안으로 들어가지 않고 현재 코드에서 한 스텝식 진행한다. 호출하는 Method 내부 동작엔 관심이 없고, 현재 코드 블록에 집중할 때 사용한다.
현재의 Method에서 리턴 후, Method 호출부에서 다시 멈춘다.
멈춰있던 쓰레드를 다시 진행한다. 다음 Breakpoint 시점까지 진행한다.
Dubug View에서 선택한(실행 중이던) 쓰레드를 멈춘다. 이렇게 멈춘 경우 멈춘 쓰레드의 현재 호출 스택이 표시되고 Variables View에 최상위 스택 프레임에서 볼 수 있는 변수들이 보여진다.
선택한 스택 프레임의 첫행으로 실행 포인트를 옮긴다. 특정 메소드를 수행 중 그 메소드의 처음부터 다시 디버깅 수행할 때 사용한다.
디버깅 중인 프로그램을 종료한다.
스탭 필터링 기능을 통해 필터링 대상 프로그램의 경우 Step Over와 같이 동작하고, 필터링 대상이 아니면 Step Into와 같이 동작한다.
Debug View의 Use Step Filters 버튼을 눌러 활성화 시킬 수 있다.
모든 synthetic method를 필터링한다.
synthetic method는 어떤 클래스를 컴파일할 때 언어 스펙을 만족시키기 위해 컴퍼일러가 임의로 정의해 바이트 코드에 추가한 method를 의미한다. 이런 method는 일반적으로 Application 프로그래머가 디버깅할 필요가 없다.
모든 클래스의 정적 초기화 블록과 정적 멤버 초기화 코드를 필터링한다.
스텝단위 진행 또는 BreakPoint 설정 등을 통해 원하는 위치까지 프로그램을 실행한다.
메뉴바에서 Window > Show View > Display를 선택하면 Display View가 나타난다.
Display View에서 상태를 확인할 객체명 또는 메소드를 입력하고 입력한 텍스트를 블럭지정한다.
Display View 오른쪽 상단에 있는 “Display Result Evaluating Selected Text” 버튼을 눌러 값을 확인한다.
자바 소스 에디터 또는 Display 뷰 상에서 객체를 선택한다.
마우스 오른쪽 버튼을 눌러 Context 메뉴가 나오면 Inspect 를 선택한다. (또는 단축키 Ctrl+Shift+I)
에디터 또는 display 뷰에서 추적할 수식을 선택한다.
마우스 오른쪽 버튼을 눌러 Context 메뉴가 나오면 Watch를 선택한다.
Expressions 뷰에 Watch 항목이 추가된다.
Expressions 뷰의 Context 메뉴에서 “add Watch Expression…” 을 누르면 임의의 수식을 작성하여 변화를 추적할 수도 있다.
Watch 대상 지정
Expressions 뷰에 임의의 수식 추가하기
Variable 뷰에서 특정 변수 값을 선택한다.
컨텍스트 메뉴에서 Change Value를 선택하고 임의의 값을 입력한다.
디버깅하는 도중에도 코드를 수정하여 컴파일한 결과를 반영할 수 있는데, 이를 Hot Code Replace라 한다. 프로그램을 다시 실행할 필요 없이 컴파일 결과를 바로 반영하여 디버깅할 수 있으므로 편리하다. 자바 소스 편집기에서 코드를 수정한 다음 컨트롤+S를 눌러 저장하면 컴파일 결과가 바로 실행중인 프로그램에 반영된다. 단, 특정 멤버 변수나 메소드를 새로 추가한 경우에는 Hot Code Replace가 적용되지 않는다.
Debug 뷰에서 다시 시작하고 싶은 메서드에 대응되는 스택 프레임을 선택한다.
뷰 툴바에서 Drop to Frame 버튼을 누르거나 컨텍스트 메뉴에서 Drop to Frame 을 선택한다.
실행 포인트가 해당 메서드의 첫 행으로 이동한다.
Variables View를 통해 메소드에서 사용 중인 변수값의 상태를 확인할 수 있는 기능을 지원한다.
Debug Perspective 에서 Variables View를 통해 변수 값을 확인할 수 있다.
이 위키의 내용은 다음의 라이센스에 따릅니다 :
CC Attribution-Noncommercial-Share Alike 3.0 Unported전자정부 표준프레임워크 라이센스(
바로가기)
전자정부 표준프레임워크 활용의 안정성 보장을 위해 위험성을 지속적으로 모니터링하고 있으나, 오픈소스의 특성상 문제가 발생할 수 있습니다.
전자정부 표준프레임워크는 Apache 2.0 라이선스를 따르고 있는 오픈소스 프로그램입니다. Apache 2.0 라이선스에 따라 표준프레임워크를 활용하여 발생된 업무중단, 컴퓨터 고장 또는 오동작으로 인한 손해 등에 대해서 책임이 없습니다.