다음을 통해 공유


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

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

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

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

Visual Studio 2012제공 된 향상 된 스레드창, GPU 스레드 새창, 새 병렬조사식 창및 기타사용자인터페이스향상 되었습니다 다중 스레드디버깅을 보다 쉽게 만들 수 있습니다. 새로운 스레드 관련인터페이스기능에 설명 하는 가장 좋은 방법은 연습을 수행 하 여 있습니다. 연습: 다중 스레드 응용 프로그램 디버깅연습: C++ AMP 응용 프로그램 디버깅을 참조하십시오.

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

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

단원 내용

관련 단원

참고 항목

기타 리소스

스레드 및 프로세스 작업

원격 디버깅 설치