다중 스레드 응용 프로그램 디버깅

스레드는 운영 체제에서 프로세서 시간을 할당받는 명령 시퀀스입니다. 운영 체제에서 실행되는 모든 프로세스는 최소한 하나의 스레드로 구성됩니다. 프로세스에 스레드가 둘 이상인 경우를 다중 스레드라고 합니다.

다중 프로세서, 다중 코어 프로세서 또는 하이퍼스레드 프로세스를 갖춘 컴퓨터는 여러 스레드를 동시에 실행할 수 있습니다. 여러 스레드를 병렬 처리하면 프로그램 성능이 크게 향상되지만, 여러 스레드를 추적해야 하므로 디버깅이 어려워질 수도 있습니다.

또한 다중 스레드로 인해 새로운 종류의 버그가 생길 수 있습니다. 예를 들어 둘 이상의 스레드에서 같은 리소스에 액세스해야 하지만 한 번에 스레드 중 하나만 리소스에 안전하게 액세스할 수 있는 경우가 많습니다. 한 번에 한 스레드만 리소스에 액세스할 수 있게 하려면 특정한 형태의 상호 제외가 필요합니다. 상호 제외가 잘못 수행되면 어떠한 스레드도 실행될 수 없는 교착 상태 조건이 발생할 수 있습니다. 교착 상태 문제는 특히 디버깅하기 어려울 수 있습니다.

Visual Studio 2010에서는 다중 스레드 디버깅을 보다 쉽게 수행할 수 있도록 스레드 창 및 기타 사용자 인터페이스가 향상되었습니다. 새로운 스레드 관련 인터페이스 기능을 배우는 가장 좋은 방법은 연습을 수행하는 것입니다. 연습: 다중 스레드 응용 프로그램 디버깅를 참조하십시오.

Visual Studio에서 제공하는 강력한 중단점 및 추적점은 다중 스레드 응용 프로그램을 디버깅할 때 매우 유용합니다. 중단점 필터를 사용하면 개별 스레드에 중단점을 배치할 수 있습니다. 방법: 중단점 필터 지정을 참조하십시오.

사용자 인터페이스가 있는 다중 스레드 응용 프로그램은 특히 디버깅하기 어려울 수 있습니다. 이러한 경우 응용 프로그램을 다른 컴퓨터에서 실행하면서 원격 디버깅을 사용하는 것이 좋습니다. 자세한 내용은 원격 디버깅 설치를 참조하십시오.

단원 내용

관련 단원

참고 항목

기타 리소스

스레드 및 프로세스 작업

원격 디버깅 설치