남이 짜놓은 프로그램 소스 디버깅 방법
남이 짜놓은 프로그램소스를 분석하고, 수정하는 작업은 쉽지 않다.
아무리 잘 만들어 놓은 라이브러리라도, 버그는 있고, 사용법도 쉽지 않은 경우가 많다.
또한 예외상황도 존재하고, 한마디로 머리아프다.
그런데, 일반 프로그래머가 작성해놓은 뒤죽박죽 프로그램 소스코드는, 상상을 초월한다.
도대체, 이유를 알 수 없는 코드가 90%이다.(조금 과장)
서론
-------------------
- 남에 코드는 변수명, 함수명을 믿지 마라.
처음에 잘못된 단어사용으로, 완전히 다른 의미가 되어,
디버깅에 막대한 지장을 주는 경우도 있다.
방법론
---------------------
- 코드의 특정부분을 주석문으로 감싸서, 해당 코드의 기능을 확인한다.
(물론, 주석처리하면, 아예동작 안하는 코드도 있다.)
- 2진 검색. 분할정복
의심가는 코드의 1/2을 주석처리하고,
나머지 1/2을 또 주석처리하다보면,
몇번만에 원하는 코드를 찾을 수 있다.
- 내가 짠 코드와 섞지마라.
나중에 더 뒤죽박죽이 될 수도 있다.
가능하면, 부분수정으로 끝내고,
다음에는 처음부터 새로 작성하길 바란다.
- 브레이크 포인트, 콜스택 활용
임의의 지점에 브레이크 포인트를 걸고, 콜스택을 따라가보면,
대충 동작 순서를 알 수 있다.
- TRACE, printf등 디버깅 기능 활용
특정함수가 얼마나, 어떻게 사용되는지, 로그기록을 남겨서 확인할 수 있다.
- HWND윈도우 기반의 GUI에서, 특정 버튼의 ID는 spy툴로 쉽게 찾을 수 있다.
프로그램 소스에서, ID번호 검색하여, ID이름을 알아낸다.
- 특정변수의 타입은, F12키를 누르면, 해당변수의 선언부(클래스)로 이동한다.