일반2007. 8. 7. 04:30

[작업중]

이상한(?) 제목으로 시작하는 이 글은 스콜성 폭우와 더위가 난무하는 '07년 여름에 작성되었다...

 1> 디버깅을 위한 좋은 방법
 : 디버거가 디버기(debugee)에게 요구하는 이상적인 환경은 동일한 플랫폼에서, 완전한 소스를 제공받기를
바라는 것에 있다고 축약할 수 있다. 자바나 닷넷 등의 언어가 제공하는 컴포넌트는 기본적으로 디스어셈블
작업 등을 통한 소스 접근이 가능하게끔 설계를 해놓고 있는데, 이는 디버거에게 매우 좋은 환경이 된다.
 
 2> 소스 접근에 대한 문제
 : 윈도우 구매자에게 전체 소스와 매번 갱신되는 패치의 소스를 제공받게 하여, 스스로 빌딩할 기회를 주면
좋은 피드백의 기회가 될 수 있을지도 모른다. 하지만, 상업용 프로그램은 소스를 제공하는 경우가 드물다.
 이런 경우 디버깅 시, 제조 회사는 디버깅에 대한 심벌을 일부 제공하는 (또는 전혀 하지 않거나) 방법으로
개발사 지원에 의한 블랙 박스의 상호 피드백을 통한 해결을 하려 할 것이다. 그렇게 되면 소스없이 디버깅을
하는 경우가 많이 발생하게 되는데, 디버거는 이상황에서 더 이상 정보를 줄 수 없게 된다. 그러면 블랙박스를
껴안고 작업을 하는 경우가 많게 되고, 이것은 불발탄이거나 또는 지뢰일수도 있는 '무언가'를 투척하는 히로시마
원폭 작전 수행병들만큼 큰 고충이 될지도 모른다. 소스가 없는 바이너리 컴포넌트는 더 큰 문제가 되기도 한다.
 항상 제공사는 소스 제공을 꺼리지만, 그것은 전자레인지 제조사에게 폭발 확률이 낮은 부속을 파는 기업일
수 밖에 없게 된다.

...우리는 항상 디버깅을 한다고 하지만, 언제나 '블랙박스'와 부딪히고, 그 순간에는 이빨 요정이나
산타클로스에게 문제 해결을 기도하는 수 밖에 없게 되는 경우에 종종 부딪히게 된다. 그리고 일부 역공학이
효과적으로 작동할 수도 있겠지만, 완전한 예측은 불가능할 지도 모른다. (이점에서 암울해 질 것이다...-_-;)

반응형
Posted by Jay Two