* Powerbuilder 10.5

 

 

 

소프트웨어에서 디버그(Debug)란 프로그램의 버그(Bug, Error, 오류)를 해결하는 일입니다. 프로그램이 갑자기 다운되는 치명적인 버그뿐만 아니라 프로그래머의 의도와 다르게 실행되는 문제도 모두 디버그 대상에 포함됩니다.

 

예기치 못한 버그가 발생했을 때, 프로그래머가 단번에 원인을 찾아 해결하지 못한다면 프로그래머 입장에서는 자신이 만든 코드가 어떻게 동작하는지 단계적으로 관찰하고 싶어집니다. 코드의 동작방식이란 변수값의 변화와 메서드의 호출방식 등을 뜻합니다. 이와 같은 일을 가능하게 하는 것이 바로 디버거(Debugger)입니다.

 

파워빌더도 편리한 디버거 툴을 제공합니다. 지금까지 만든 프로그램을 통해서 디버깅하는 방법을 알아보겠습니다.

 

파빌을 실행합니다.

 

w_list -> Open 이벤트를 봅니다.

 

 

 

 

 

 

 

 

w_list.open 이벤트에 있는

지역변수 li_cnt, i 값의 흐름을 알아보겠습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dw_loc_list.SetTransObject(sqlca) 

부분 왼편에 마우스 포인터를 두고 우클릭을 하면 왼쪽 그림과 같은 팝업이 열립니다.

 

팝업 하단의 Insert Breakpoint 를 클릭합니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

그럼 빨간 점 하나가 왼편에 생기는데요.

바로 브레이크포인트(Breakpoint) 입니다.

이게 뭔지 궁금해도 참고 넘어가세요.

 

 

 

 

 

파빌 메뉴를 보세요.

 

 

 

 

메뉴 -> Run -> Debug test 

 

Debug test 에서 test 는 타겟이름입니다.

test 타겟의 어플리케이션을 Debug 하겠다는 뜻이죠.

단축키가 Ctrl + D 로 되어있네요.

 

또는

 

 

벌레 모양의 아이콘 클릭~

(벌레 잡자는 뭐 그런...)

 

 

 

 

위 화면이 바로 디버거입니다. 실행하는 단축키가 Ctrl + D 입니다.

단축키는 익히면 작업 속도가 빨라진다고 말씀드린 적이 있죠? 앞으로는 단축키로 실행하기 바랍니다.

지금은 디버거를 열어둔 상태고 디버깅을 하려면 디버거를 실행해야 합니다.

 

그리고 파빌 메뉴를 다시 보세요.

 

 

 

 

Debug 메뉴가 생겼네요. 클릭~

맨 위에 Start test

(단축키 Ctrl + T)

 

또는

 

 

클릭~

 

 

 

 

왼쪽 상단의 창이 소스뷰(Source View) 입니다.

w_list.open 이벤트가 보이고 이전에 설정한 브레이크포인트(Breakpoint)에 노락색 모양의 커서가 멈춰있는 것이 보입니다. 말 그대로 커서가 멈춰있습니다. 프로그램은 실행되었고 w_list.open 이벤트의 브레이크포인트에서 실행이 중지된 상태됩니다. 중지된 것이지 종료된 것은 아닙니다. 그래서 브레이크포인트라고 합니다. 자동차가 빨간 신호등 앞에서 멈춘 상태와 같습니다. 브레이크를 밟아서 멈춘 것이지 시동을 끈 상태는 아닙니다.

 

앞서 지역변수 li_cnt, i 값의 흐름을 알아보겠다고 했는데요.

왼쪽 하단을 보세요. 이 창이 변수뷰(Variables View) 입니다.

 

integer i = 0

integer li_cnt = 0

 

 

브레이크포인트까지 실행된 상태에서의 li_cnt, i 값을 나타내고 있습니다.

이제 li_cnt, i 값의 흐름을 알아보겠습니다.

 

 

메뉴에서 Step In 아이콘을 찾아보세요.

 

 

 왼편에서 두번째 아이콘

 

 

 

 

Step In 을 딱 한번만 클릭합니다.

 

 

 

 

 

 

 

 

 

 

커서가 아래쪽으로 이동했습니다.

 

 

 

 

 

 

 

 

 

 

 

변수값의 변화는 없습니다.

 

 

 

 

 

커서가 위치한 부분에서의 변수값이 실시간으로 보여집니다.

Step In 을 다시 클릭~

 

 

 

 

 

 

li_cnt = dw_job_list.Retrieve() 에서

li_cnt 는 dw_job_list.Retrieve() 의 반환값을 저장합니다.

 

 

 

 

 

 

 

 

 

 

 

li_cnt 가 5 로 되었습니다.

 

 

 

 

 

 

디버거 화면이 모니터 전체를 덮고 있다면 디버거 화면을 살짝 아래로 이동해보세요.

 

 

 

 

디버거화면 뒤로 실행중인 프로그램이 보입니다. 현 시점까지 실행된 프로그램의 모습입니다.

이 상태에서 Step In 을 계속 클릭하면서 li_cnt, i 값과 소스뷰 그리고 실행중인 프로그램의 모습을 잘 관찰해 보세요. 수십번 클릭해야 합니다만 해보면 많은 것을 느끼게 됩니다.

 

 

 

 

dw_loc_list.SetTransObject(sqlca)

부분 왼편으로 커서를 옴기고 난 다음 마우스 우클릭합니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Clear Breakpoint 는 브레이크포인트(이하 브포)를 제거합니다.

 

Disable Breakpoint 는 브포를 사용해제시키는데요. 빨간 아이콘이 빨간 테두리의 원으로 변경됩니다. 잠시 해제했다가 나중에 사용할 경우에 쓰입니다.

 

 

 

 

수고하셨습니다.

 

 

 

Posted by 신선봉(닉네임)

댓글을 달아 주세요

  1. 푸송푸송 2014.07.17 21:07 신고  댓글주소  수정/삭제  댓글쓰기

    이직을 해서 파워빌더를 하게 되었습니다...전 서버, 네트워크, 보안 전문인데;;;;;;
    당황스럽지만 맡은일 열심히 해봐야지 하면서 이곳 저곳 찾아보고 책도 사서 보고 했지만..
    선생님 강의가 상세하게 잘 나와있는듯 합니다.

    강의 다 보고 두번 세번쯤 복습해보면 흉내정도는 낼 수있을꺼란 믿음으로 공부하고 있습니다.
    강의 감사합니다!



티스토리 툴바