Please Enable JavaScript!
Gon[ Enable JavaScript ]

[Java] 자바 디버깅 방법, 이클립스를 이용해서 자바 디버깅 하기

자바(JAVA)

[Java] 자바 디버깅 방법, 이클립스를 이용해서 자바 디버깅 하기

 

환경 : Eclipse Mars, Android 4.2.2

 

프로그램에서 디버깅은 필수 입니다. 디버깅을 어떻게 하느냐에 따라 프로그램의 생산성과 능력이 결정되기 때문입니다. 그래서 프로그램하실 때 GUI 툴에는 디버깅 기능이 아주 잘 되어 있습니다. 자바개발에서 가장 많이 쓰이고 있는 이클립스에도 디버깅 기능이 있죠.

 

▼ 이클립스에는 debug perspective 가 있습니다. Run/Debug 를 하게 되면 자동으로 Debug perspective 로 이동하게 됩니다. 이곳에서 디버깅을 하게 되는 것이죠. 디버깅 perspective 를 추가하기 위해 Open Perspective 를 클릭해 보시면 볼수 있습니다.  

 

[Java] 자바 디버깅 방법, 이클립스를 이용해서 자바 디버깅 하기

 

1. 브레이크 포인트

 

▼ 디버깅은 가장 핵심은 브레이크 포인트 입니다. 그러니까 조사하고 싶은 시점에 진행을 멈추고 각 객체에 들어가 있는 값들을 확인하는 것이죠. 에디터에서 의심되는 소스의 라인을 더블클릭하시면 조그마한 점이 찍힙니다. 이것이 브레이크 포인트 입니다. 프로세스가 단계별로 진행되다고 이곳에 오게 되면 멈추게 되겠죠.

 

 

▼ 실제로 브레이크 포인트에서 멈추는지 확인해 보겠습니다. F11 단축키를 누르거나 Run 메뉴 > Debug 를 클릭합니다. 그럼 바로 디버깅 모드로 컴파일이 진행됩니다.

[Java] 자바 디버깅 방법, 이클립스를 이용해서 자바 디버깅 하기

 

▼ 컴파일이 되고 프로그램이 실행되면 브레이크 포인트가 있는 라인에서 아래 그림과 같이 멈추게 되는 것이죠. 이 소스를 작성한 본인은 브레이크 포인트를 찍은 목적이 있습니다. 자신의 생각대로 출력값이 안 나오거나 에러가 나서 원인이 무엇인지 파악하기 위해서 겠죠. 이렇게 원인을 파악하기 위해 단계를 진행하는 방법과 각 변수에 값이 무엇인지 확인하는 방법에 대해 알아 보겠습니다.

[Java] 자바 디버깅 방법, 이클립스를 이용해서 자바 디버깅 하기

 

2. 디버깅 진행

 

▼ 디버깅을 하게 되면 위에서 언급했던 대로 Debug Perspective 화면으로 전환됩니다. Debug Perspective 상단에는 디버깅을 진행할수 있는 아이콘들이 나타납니다. 이 아이콘들의 용도는 다음과 같습니다. 여기에서 아주 유용한 기능중 하나가 Drop to Frame 입니다. F6 을 눌러 단계별로 진행하다가 보고 싶은 변수 값을 놓치는 경우가 있죠. 그때 Drop to Frame 을 누르게 되면 해당 함수의 처음으로 이동하게 되므로 다시 확인해 볼수 있습니다.

 

1) Skip All Breakpoints : 모든 브레이크 포인트 건너뜀

2) Resume(F8) : 다음 브레이크포인트까지 진행함

3) Suspend : 쓰레드를 일시 정지하며 현재 수행문에 지정한 것과 같음

4) Terminate : 쓰레드 종료

6) Step Into(F5) : 한단계 진행하는데 다음 라인이 함수 안이면 함수 안으로 들어감.

7) Step Over(F6) : 함수 호출을 지나치고 현재 위치에서 한 단계 진행

8) Step Return(F7) : 현재 함수 끝까지 바로 가서 리턴한 후 함수 호출부로 되돌아 감

9) Drop to Frame : 선택한 스택 프레임의 첫 행으로 이동. 처음부터 다시 하고자 할 때

10) Use Step Filters(Shift+F5) : 스텝 필터링

[Java] 자바 디버깅 방법, 이클립스를 이용해서 자바 디버깅 하기

 

 

▼ 이렇게 디버깅 진행 메뉴들은 상단 아이콘이 아닌 메뉴에서도 볼수 있습니다. Run 메뉴에 보시면 Debug Perspective 화면에서 볼수 있던 모든 디버깅 메뉴들이 있습니다.

[Java] 자바 디버깅 방법, 이클립스를 이용해서 자바 디버깅 하기

 

3. 현재 브레이크되어 있는 시점에서 객체값 확인하는 방법

 

▼ 이제 단계별로 진행하는 방법을 알았으니 변수들에 들어 있는 값을 확인해서 문제점을 찾아 봐야 겠죠. Step Into Step Over 를 눌러 단계별로 진행하면서 의심되는 변수가 있다면 마우스로 가져갑니다. 그럼 팝업창이 뜨면서 해당 변수에 값들을 볼수 있습니다.

[Java] 자바 디버깅 방법, 이클립스를 이용해서 자바 디버깅 하기

 

 

▼ 현재 프로그램에서 쓰이고 있는 모든 변수들을 확인하고 싶다면 상단에 있는 Variables 창으로 갑니다. 마우스로 확인하는 방법은 하나만 확인이 가능하지만 Variables 창에서는 모든 변수들을 실시간으로 확인할수 있습니다. 

[Java] 자바 디버깅 방법, 이클립스를 이용해서 자바 디버깅 하기

 

[Variables] 바로 옆에 있는 [Breakpoints] 탭은 현재 프로젝트에 설정되어 있는 모든 브레이크 포인트 정보를 볼수 있습니다. 해당 브레이크 포인트를 스킵하고 싶다면 체크해제 하시면 됩니다. 그리고 항목을 더블클릭하시면 브레이크 포인트가 설정된 포인트로 바로 이동할수 있습니다.

[Java] 자바 디버깅 방법, 이클립스를 이용해서 자바 디버깅 하기

 

▼ 마지막 탭인 Expressions 은 내가 주로 보고 싶은 변수들을 추가해서 관찰할수 있습니다. Variables 는 변수들이 전부 모여 있기 때문에 일일이 찾아서 보기에는 불편합니다. 그래서 필요한 것만 추가해서 관찰할수 있는 Expressions 을 많이 이용하게 됩니다.

[Java] 자바 디버깅 방법, 이클립스를 이용해서 자바 디버깅 하기

 

Expressions 창에 추가하고 싶다면 변수를 선택하고 오른 마우스를 클릭합니다. 그리고 단축메뉴중 [Watch] 클릭하시면 바로 추가 됩니다.

[Java] 자바 디버깅 방법, 이클립스를 이용해서 자바 디버깅 하기

 

Posted by 녹두장군

댓글을 달아 주세요

  1. 자바 2015.09.08 07:54  댓글주소  수정/삭제  댓글쓰기

    잘읽고갑니다^^ 명확하네요

  2. 초보프로그래머 2015.09.12 20:53  댓글주소  수정/삭제  댓글쓰기

    VBA로 시작하여 디버깅을 너무 편하게 해서 그런지
    C언어나 자바는 어렵게 느껴졌는데 이 설명을 보니 한참 수월해졌네요 ^^
    감사합니다.

  3. 정다솜 2016.02.21 15:04  댓글주소  수정/삭제  댓글쓰기

    안녕하세요? 이클립스 초보입니다.

    말씀하신대로 브레이크포인트를 설정한 후 F11키를 통해 디버그를 눌러도 Ctrl+F11을 누른것과 같이 아무 차이도 없이 실행이 됩니다. 위에 설명되어있는 디버깅모드 화면으로 변하지도 않구요.

    어떤 문제가 있는 걸까요?

  4. Favicon of http://syeon02.tistory.com 김전임 2016.04.15 08:43  댓글주소  수정/삭제  댓글쓰기

    잘 보고 갑니다! 깔끔하고 명확하게 정리해주셨네요

  5. 녹두님최고 2017.03.18 20:30  댓글주소  수정/삭제  댓글쓰기

    감사합니다

  6. 2017.05.09 14:14  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다