Total Articles 494
정말이지 죽을 맛이다.
3~4일 정도 보면 문제가 해결될 것 같았는데
소스가 몇명 건너 오게 된 소스를 가지고
코드를 분석해서 버그를 찾아 낸다는 것은 정말 죽을 맛이다.
초기 현상은 프로그램이 2~3일 정도헤 한번씩 에러가 났었음. 에러가 나면 메인창이 하얗게 되면서 프로그램이 뻗어 버림.
스레드에서 GUI를 건드리는 코드가 존재할 것으로 판단을 해서 working thread에서 GUI를 건드릴 수 있는 모든 코드에 대해 로깅 작업을 함.
주요 VCL core 라이브러리들을 explicit link를 하여 웬만한 코드에 로직 작업을 함. 일주일동안 디버깅 코드(로그를 남기는)만 열라 넣음.
덕분에 2~3일에 한번 정도 뻗던 프로그램을 하루에 5~6번 뻗도록 변경이 되었음.
더 자주 뻗는다고 욕먹고 있지만, 디버깅 코드에 의해 프로그램 shutdown이 더 빈번히 일어날 수 있다고 설명해 줌. ㅋㅋ
디버깅 코드로 몇개 버그 잡아 냄. 수정함.
이제 단 하나의 경우에만 프로그램이 shutdown이 됨.
로깅만으로는 도저히 프로그램 버그를 잡기 힘들다고 판단됨.
결국 AS-IS 서버에 컴파일러를 깔고 소스 컴팔해서 직접 디버깅을 하는 것으로 결정함.
개발자의 자존심이 걸린 문제.
반드시 해결하고 만다!!!
오늘 드디어 버그를 잡았다. ㅋㅋ
결국 문제는 Synchronize의 잘못된 사용으로 인해 스레드간의 Deadlock. ㅠㅠ
초허접이지만 정리해서 델마당에 올려야 겠다.
제목은 "초허접 디버깅 삽질 이야기" 정도? ^^