Visual Studio 사용하여 User-Mode 프로세스 디버깅
중요
이 기능은 Windows 10 버전 1507 이상 버전의 WDK에서는 사용할 수 없습니다.
Microsoft Visual Studio Windows 사용자 모드 디버거를 사용하여 실행 중인 프로세스에 연결하거나 새 프로세스를 생성하고 연결할 수 있습니다. 이 프로세스는 디버거를 실행하는 동일한 컴퓨터에서 실행되거나 별도의 컴퓨터에서 실행할 수 있습니다.
이 항목에 나와 있는 절차에서는 Windows 드라이버 키트를 Visual Studio 통합해야 합니다. 통합 환경을 얻으려면 먼저 Visual Studio 설치한 다음 Windows WDK(드라이버 키트)를 설치합니다. 자세한 내용은 Windows 드라이버 키트(WDK)를 참조하세요.
동일한 컴퓨터에서 실행 중인 프로세스에 연결
- Visual Studio 도구 메뉴에서 [프로세스에 연결]을 선택합니다.
- 프로세스에 연결 대화 상자에서 전송을 Windows 사용자 모드 디버거로 설정하고 한정자를Localhost로 설정합니다.
- 사용 가능한 프로세스 목록에서 연결할 프로세스를 선택합니다.
- 연결을 클릭합니다.
비침범성 디버깅
실행 중인 프로세스를 디버그하고 실행 중 최소로만 방해하려는 경우 프로세스를 비침해적으로 디버그해야 합니다.
동일한 컴퓨터에서 새 프로세스 생성
- Visual Studio 도구 메뉴에서 디버거 아래에서 시작을 선택합니다.
- 디버거에서 시작 대화 상자에서 실행 파일의 경로를 입력합니다. 인수 및 작업 디렉터리를 입력할 수도 있습니다.
- 시작을 클릭합니다.
디버거가 만드는 프로세스(생성된 프로세스라고도 함)는 디버거가 만들지 않는 프로세스와 약간 다르게 동작합니다.
표준 힙 API를 사용하는 대신 디버거가 만드는 프로세스는 특수 디버그 힙을 사용합니다. 생성된 프로세스에서 _NO_DEBUG_HEAP 환경 변수를 사용하여 디버그 힙 대신 표준 힙을 사용하도록 강제할 수 있습니다.
또한 대상 애플리케이션은 디버거의 자식 프로세스이므로 디버거의 사용 권한을 상속합니다. 이 권한을 사용하면 대상 애플리케이션이 다른 작업을 수행할 수 없는 특정 작업을 수행할 수 있습니다. 예를 들어 대상 애플리케이션은 보호된 프로세스에 영향을 줄 수 있습니다.
별도의 컴퓨터에서 실행 중인 프로세스에 연결
디버거와 디버깅 중인 코드가 별도의 컴퓨터에서 실행되는 경우가 있습니다. 디버거를 실행하는 컴퓨터를 호스트 컴퓨터라고 하며 디버그 중인 코드를 실행하는 컴퓨터를 대상 컴퓨터라고 합니다. 호스트 컴퓨터의 Visual Studio 대상 컴퓨터를 구성할 수 있습니다. 대상 컴퓨터 구성을 대상 컴퓨터 프로비전 이라고도 합니다. 자세한 내용은 드라이버 배포 및 테스트용 컴퓨터 프로비전(WDK 8.1)을 참조하세요.
대상 컴퓨터를 프로비전한 후 호스트 컴퓨터의 Visual Studio 사용하여 대상 컴퓨터에서 실행되는 프로세스에 연결할 수 있습니다.
- 호스트 컴퓨터의 Visual Studio 도구 메뉴에서 [프로세스에 연결]을 선택합니다.
- 프로세스에 연결 대화 상자에서 전송을 Windows 사용자 모드 디버거로 설정하고 한정자를 대상 컴퓨터의 이름으로 설정합니다.
- 사용 가능한 프로세스 목록에서 연결할 프로세스를 선택합니다.
- 연결을 클릭합니다.
참고 별도의 호스트 및 대상 컴퓨터를 사용하는 경우 대상 컴퓨터에 Visual Studio 및 WDK를 설치하지 마세요. Visual Studio 및 WDK가 대상 컴퓨터에 설치된 경우 디버깅이 지원되지 않습니다.