디버깅 스타일

Tags:

www.wegra.org에서 펌

디버깅 기법을 탐정들의 스타일에 따라 분류해 봤습니다.

– 하드보일드형

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

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

– 안락의자형

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

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

– 완전범죄형

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

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

– CSI 과학수사대형

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

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

– 미스 마플형

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

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

– 명탐정 코난형

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

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

– 소년탐정 김전일형

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

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

Comments

4 responses to “디버깅 스타일”

  1. 진규 Avatar

    왜 제가 코멘트 다는거
    계속 없어지져@_@;;

    아무튼 넘 웃겨여 ㅋㅋㅋㅋ
    가장 늦게 끝난다랑
    김전일, 코난 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

  2. 민구 Avatar
    민구

    요즘 코멘트에 스팸이 무지막지하게 쏟아져서(하루에 수백개) 그거 지우기 귀찮아서 커멘트에 confirm을 안해주고 있었다… confirm 안하면 사이트에 안뜨게 되있다.

  3. 민구 Avatar
    민구

    이젠 아주 어떤 미친 녀석이 분당 한개씩 커멘트 올리고 있다… 내용은, ‘나는 인간이 악하거나 화를 잘내거나 한다고 믿지 않는다. 나는 인간을 믿는다.’ 뭐 그런 -_-;;;; (영어로..) 머 이런 돌아이가 -_-;;;; 결국 또 하나의 아이피를 banning 함…

  4. 이민 Avatar
    이민

    쿠쿠쿠…
    잼있넹~ ㅋㅋ…
    가슴에 와닿는 이야기닷..크크크

Leave a Reply

Your email address will not be published. Required fields are marked *