Daybreakin Things

Posted
Filed under 컴퓨터
저번에도 개발자(김용묵 님)를 직접 모셨었는데 다시 버그를 발견하여 또 기숙사 방으로 모셨다. -_-;; (이번엔 해프닝이 아니라 진짜 디버깅이었다..)

IE에서 자동완성 기능 옵션 중 '웹 주소'를 제외한 나머지 두 옵션 중 하나라도 켜져 있으면 날개셋 입력기 -> MS IME로 전환할 때마다 ngsime.ime에서 오류가 나서 IE가 종료되어 버리는 것이었다.

디버그 결과, 윈도우가 닫힐 때 내부적으로 lParam으로 어떤 포인터 값을 전달하는데 중간에 null (0)이 되어버리는 것이었다.

원인을 알 수 없었지만 null일때 다음 코드를 실행하지 않게 함으로써 오류는 막을 수 있었다.

그리고 추가로 발견한, 한글 2004에서 시스템 입력기로 날개셋을 이용하다가 종료시 오류가 발생하는 상황은 코드의 어디서 에러가 난다는 사실은 알아냈으나 구체적인 원인과 해결 방법을 찾지 못했다. (이 오류의 발견 덕분에 물리 레포트 일부를 날렸다..orz)

아무래도 이번 버그들이 고쳐지면 새로운 minor 업그레이드가 될 것 같다. 추가로, 야식도 한 끼 약속해 주셨으니 시간 나면 얻어먹을 수 있을 것이다. ^^;

ps. 이번 사건(?)을 계기로, windows 내에서도 버전과 환경에 따라 똑같이 동작하는 프로그램을 만들기가 얼마나 어려운지 알 수 있었다. (특히나 IME/TSF와 같은 건 multi-thread 환경인데다 window handle이 수시로 생성/소멸되기 때문에 안정성 확보가 가장 어려운 것 같다..)