XP에서 멀티쓰레드 프로그램 디버깅시 멈추는 문제

XP에서 개발한 이후로 디버깅하면서 모든 프로그램이 멈추는 듯한 현상이 자주 발생했었는데, 이제야 문제에 대한 해결책(?)을 우연히 블로그에서 발견하게 됐습니다.

http://snaiper.tistory.com/198

2000에서 개발할때까지는 디버깅에 전혀 문제가 없었는데, 멀티쓰레드 프로그램 디버깅을 할때 메인 쓰레드가 아닌곳에 breakpoint를 잡고 디버깅하다 보면 마우스만 움직이고 전체 프로그램이 클릭도 안되는 상황이 발생하더군요. 그래서 2000에 개발환경도 갖춘적도 있었는데, 최근에는 주로 OutputDebugString로 원시적인 디버깅을 많이합니다. ㅎㅎ

정확한 원인은 잘 모르겠지만, 고급텍스트서비스라는데서 글로벌 락을 이용해서, 디버거에서 그쪽에 락을 걸어버려서 다른 모든 프로그램들도 데드락이 걸리는거라는 거 같습니다. –;

해결책은

제어판-국가및언어옵션-언어탭-텍스트 및 입력언어 “자세히”-고급탭-고급텍스트서비스사용안함에 체크하고 리부팅

이렇게 바꾸면 멈추는 현상이 대부분(?) 없어진다고 하는군요.

Leave a Reply

Your email address will not be published.