본문 바로가기

나의 이야기/낙서장

탐정스타일의 디버깅 기법

델마당(www.delmadang.com)의 text(?)님이 올리신 글입니다. 퍼왔슴다~~

 

- 하드보일드형

모든 문장과 문장 사이에 printf를 추가한다.
어떤 문장이 문제를 일으키는지 끈기 있게 추적한다.
한줄씩 따라가다보면 문제가 되는 문장을 찾을 수 있기 마련이다.

가끔 담배를 피우러 나가는 것을 잊지 않는다.
잠은 사무실에서 아무렇게나 자는 편이 좋다.


- 안락의자형

가만히 앉아서 모니터를 뚫어져라 응시한다.
전혀 움직이지 않고 몇시간이고 코드를 쳐다본다.
가끔 혼자서 뭐라고 중얼중얼 거리기도 하는데 옆사람은 못알아 듣는다.
그러나 갑자기 마구 타이핑을 하더니 버그를 잡아낸다.

다 좋은데 옆에서 보기엔 미친것 같다.


- 완전범죄형

프로그램을 짤 때 부터 애시당초 머리속으로 무척 많은 생각을 한다.
코드 한줄 한줄 마다 모든 부가효과(side effect), 예외상황(exception), 잘못된 입력을 염두에 둔다.
심지어 멀티 슬레드 코드로 사용되는 경우도 생각하고, 에러 리턴 코드도 구조적으로 만든다.

버그없는 코드는 완전범죄만큼이나 불가능 하다.
결국엔 항상 사소한 것에서 문제가 발생한다.


- CSI 과학수사대형

소스 디버거의 브레이크 포인트는 기본이다. 조건부 브레이크-포인트는 물론이요 스택 트레이스를 한다.
퓨리파이어 같은 소프트웨어로 메모리 leakage도 검사한다.
gprof나 VC-profiler로 프로그램의 병목도 찾아낸다. spi++같은 것도 능숙하게 사용한다.

다른 사람보다 항상 제일 늦게 디버깅을 마친다.


- 미스 마플형

엔지니어들이 디버깅하다 안되서 휴게실에 나가 담배를 태운다.
이런저런 문제점들에 대해 논의를 하고 있는데 옆에서 쓰레기통 비우던 아줌마가 말한다.

"그럴땐 대게 클래스 destructor에서 널 포인트를 지우는 바람에 그렇게 되는데..."


- 명탐정 코난형

디버깅을 시작한다.
어려운 코드를 들여다 보니 잠만온다.
일어나면 코드가 디버깅 되어 있다.

옆에서 네이버 지식인을 습격하고 있는 초딩이 의심스럽다.


- 소년탐정 김전일형

버그의 원인이 될만한 모듈을 고립시킨다.
코드를 고치려다 버그가 하나 더 발생한다.
버그가 하나 더 발생한다.
버그가 하나 더 발생한다.
이건 연쇄 버그다.
시스템이 크래쉬 한다.

....어쨌거나 버그는 이 안에 있다.


--------------------------------------------------

어쨌거나 버그는 이 안에 있다...하하

'나의 이야기 > 낙서장' 카테고리의 다른 글

너에게 묻는다 [ 시한편 ]  (0) 2004.10.22
연탄  (0) 2004.10.22
[펌] 헌법을 새로 만든 헌법재판소  (0) 2004.10.21
[펌] 인형놀이  (0) 2004.10.19
[펌] 코카콜라 CEO의 신년사 중에서....  (0) 2004.10.19