다중 스레드 응용 프로그램 디버깅
업데이트: 2007년 11월
스레드는 운영 체제에서 프로세서 시간을 할당받는 명령 시퀀스입니다. 운영 체제에서 실행되는 모든 프로세스는 최소한 하나의 스레드로 구성됩니다. 프로세스에 스레드가 둘 이상인 경우를 다중 스레드라고 합니다.
다중 프로세서, 다중 코어 프로세서 또는 하이퍼스레드 프로세스를 갖춘 컴퓨터는 여러 스레드를 동시에 실행할 수 있습니다. 여러 스레드를 병렬 처리하면 프로그램 성능이 크게 향상되지만, 여러 스레드를 추적해야 하므로 디버깅이 어려워질 수도 있습니다.
또한 다중 스레드로 인해 새로운 종류의 버그가 생길 수 있습니다. 예를 들어 둘 이상의 스레드에서 같은 리소스에 액세스해야 하지만 한 번에 스레드 중 하나만 리소스에 안전하게 액세스할 수 있는 경우가 많습니다. 한 번에 한 스레드만 리소스에 액세스할 수 있게 하려면 특정한 형태의 상호 제외가 필요합니다. 상호 제외가 잘못 수행되면 어떠한 스레드도 실행될 수 없는 교착 상태 조건이 발생할 수 있습니다. 교착 상태 문제는 특히 디버깅하기 어려울 수 있습니다.
Visual Studio 2008에서는 다중 스레드 디버깅을 보다 쉽게 수행할 수 있도록 스레드 창 및 기타 사용자 인터페이스가 향상되었습니다. 새로운 스레드 관련 인터페이스 기능을 배우는 가장 좋은 방법은 연습을 수행하는 것입니다. 연습: 다중 스레드 응용 프로그램 디버깅을 참조하십시오.
Visual Studio에서 제공하는 강력한 중단점 및 추적점은 다중 스레드 응용 프로그램을 디버깅할 때 매우 유용합니다. 중단점 필터를 사용하면 개별 스레드에 중단점을 배치할 수 있습니다. 방법: 중단점 필터 지정을 참조하십시오.
사용자 인터페이스가 있는 다중 스레드 응용 프로그램은 특히 디버깅하기 어려울 수 있습니다. 이러한 경우 응용 프로그램을 다른 컴퓨터에서 실행하면서 원격 디버깅을 사용하는 것이 좋습니다. 자세한 내용은 원격 디버깅 설치를 참조하십시오.
단원 내용
방법: 스레드 창 사용
스레드 창을 사용하여 스레드를 디버깅하는 유용한 절차를 보여 줍니다.방법: 디버깅 중 다른 스레드로 전환
디버깅 컨텍스트를 다른 스레드로 전환하는 세 가지 방법을 보여 줍니다.방법: 스레드에 플래그 지정 및 스레드의 플래그 해제
디버깅 도중 특별히 주의하려는 스레드를 표시하거나 플래그를 지정합니다.방법: 네이티브 코드에 스레드 이름 설정
스레드 창에 표시되는 스레드에 이름을 지정합니다.방법: 관리 코드에 스레드 이름 설정
스레드 창에 표시되는 스레드에 이름을 지정합니다.연습: 다중 스레드 응용 프로그램 디버깅.
다양한 스레드 디버깅 기능을 안내하고, Visual Studio 2008에서 기능을 사용하는 방법에 중점을 둡니다.방법: 고성능 클러스터에서 디버깅
고성능 클러스터에서 실행되는 응용 프로그램을 디버깅하는 방법을 보여 줍니다.네이티브 코드의 스레드 디버깅 팁
네이티브 스레드를 디버깅하는 단순하지만 유용한 방법을 보여 줍니다.
관련 단원
방법: 중단점 필터 지정
개별 스레드에 중단점을 배치하려는 경우 중단점 필터를 사용하는 방법을 보여 줍니다.방법: 추적점/중단점 동작 지정
추적점을 통해 프로그램 실행을 중단 없이 추적할 수 있습니다. 이 기능은 교착 상태와 같은 문제를 파악할 때 유용합니다.관리되는 스레딩
.NET Framework 프로그래밍의 스레드 개념에 대해 설명하며, 예제 코드가 포함되어 있습니다.구성 요소에서 다중 스레딩
.NET Framework 구성 요소에서 다중 스레드를 사용하는 방법에 대해 설명합니다.Visual Basic의 다중 스레딩
Visual Basic 프로그래머를 위한 스레드 개념 및 예제 코드가 들어 있습니다.스레딩 사용(C# 프로그래밍 가이드)
C# 프로그래머를 위한 스레드 개념 및 예제 코드가 들어 있습니다.다중 스레딩
MFC를 사용하는 C++ 프로그래머를 위한 스레드 개념 및 예제 코드가 들어 있습니다.방법: 원격 클러스터 응용 프로그램 디버깅
고성능 클러스터에서 실행되는 응용 프로그램에 대한 원격 디버깅을 설정하는 방법을 보여 줍니다.