티스토리 뷰

728x90

컴퓨팅 용어의 많은 부분은 일반 생활에 평상적으로 쓰이는 것과 그 의미에 큰 차이가 없는 편입니다. 그런데 몇몇 용어는 컴퓨팅 관련한 곳에서만 쓰이는 것이 있는데 그 중에 하나가 바로 디버그(Debug) 입니다. 프로그램을 작성하다보면 언어에서 정한 문법대로 쓰지 않아서 생기는 문법 오류(Syntax error)와 같은 것은 컴파일러가 메시지와 함께 친절하게 알려주므로 어렵지 않게 고칠 수 있습니다. 그렇지만, 프로그래밍 언어에서 정한 문법대로 작성해서 프로그램도 잘 만들어 졌으나 정작 실행 과정에서 프로그래머가 의도한 대로 프로그램이 동작하지 않는 경우가 있습니다. 예를 들어 10회 루프를 돌고 프로그램이 끝나야 하는데, 프로그램이 끝나지 않고 무한 루프를 돈다던가, 컨베이어 라인을 특정 센서 신호에 따라 멈춰야 하는데 멈추지 않고 계속 동작하는 등 프로그래머의 의도 맞게 동작하지 않는, 또는 프로그래머가 미리 예상하지 못한 상황이 발생해서 프로그램이 대처하지 못하는 경우등을 통상 버그(Bug)라고 하고 이것을 정상적으로 동작하도록 수정하는 것을 디버그(Debug)라고 부릅니다.




 

문제는 프로그램이 오동작하는 원인을 단번에 알아서 해당 부분을 수정할 수 있다면 좋지만, 프로그래머를 당황케 하는 대부분의 상황은 그 원인을 모른다는 점에 있습니다. 우리가 평상시 사용하는 대부분의 프로그램이 컴파일을 거쳐 실행 프로그램으로 빌드되었을때는 그 안에 변수명, 함수명등 원래 소스 코드에 있던 정보는 거의 남지 않습니다. 프로그램이 특정 시점에 죽어도 왜 죽었는지 알수가 없는 것이지요. 그래서 이러한 경우를 대비해서 실행 프로그램에 변수명, 함수명등의 정보를 담아서 빌드 해놓고 프로그램이 죽으면서 Dump 또는 Core를(프로그램이 죽을 당시에 어디서 죽었는지 그때의 환경은 어떠했는지 등의 정보가 남습니다) 남길때 그 정보를 소스 수준에서 분석할 수 있도록 돕습니다. 이러한 분석 작업은 디버거(Debugger)라는 프로그램이 담당하는데 비주얼스튜디오에서도 사용할 수 있습니다. 

 

디버거를 통한 프로그램 수정은 덤프나 코어를 통해서도 가능하지만 더 많은 프로그래머는 프로그램의 특정한 지점에 멈춤(Break point)을 설정하고 프로그램이 수행하다가 해당 지점에 오면 멈추도록 하여 프로그램의 지시에 따라 한 문장씩 또는 한 함수씩 실행하면서 값의 변동과 프로그램의 동작을 확인하는 과정을 거쳐서 프로그램이 안정화되도록 합니다. 

 

위에서 언급한 디버깅을 위해서는 프로그램을 디버깅 모드로 빌드해야 합니다. VB .Net에서 프로젝트를 생성하면 기본적으로 Debug 모드로 빌드하므로 개발과 테스트가 끝나서 일반 사용자에게 배포할 때는 릴리즈 모드로 빌드해서 속도나 프로그램 크기를 향상 시킬 필요가 있습니다. 프로그램을 빌드하면 결과물로 실행 프로그램이 나오는데 그 위치가 디버깅 모드 일 때는 프로젝트 폴더 아래 bin/Debug 폴더에 실행 파일과 함께 디버그 정보 파일(*.pdb)이 생성되며 릴리즈 모드일 때는 bin/Release 폴더에 실행파일을 생성합니다. 모드간 전환은 프로젝트 속성에서 언제든지 가능합니다. 주의할 점은 모드를 전환한 다음에는 되도록 프로젝트 전체를 다시 빌드해서 모드 전환에 따른 혼란이 없도록 합니다.

 


728x90

'프로그래밍' 카테고리의 다른 글

VB .Net 도구 사용법(2)  (0) 2015.02.09
VB .Net 도구 사용법(1)  (0) 2015.02.07
프로젝트와 솔루션  (0) 2015.01.20
Visual Basic과 닷넷(.Net)  (0) 2015.01.12
VB .Net 첫 콘솔 응용 프로그램만들기  (0) 2015.01.12
댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함