대상
디버거 엔진은 다양한 유형의 대상, 사용자 모드 및 커널 모드 대상, 라이브 대상 및 크래시 덤프 파일, 로컬 및 원격 대상의 디버깅을 지원합니다. 엔진을 이러한 다양한 유형의 대상에 연결하는 방법에는 여러 가지가 있습니다.
크래시 덤프 파일
사용자 모드 및 커널 모드 크래시 덤프 파일은 모두 OpenDumpFile을 사용하여 열립니다. 또한 엔진은 WriteDumpFile2를 사용하여 대상에서 덤프 파일을 만들 수 있습니다.
라이브, User-Mode 대상
디버거 엔진은 사용자 모드 프로세스를 만들고 연결할 수 있습니다.
프로세스 만들기는 명령줄을 제공하고 필요에 따라 새 프로세스에 대한 초기 디렉터리 및 환경을 제공하여 수행됩니다. 그런 다음 엔진은 새 프로세스에 연결하거나 다른 프로세스에 연결하는 동안 새 프로세스를 일시 중단된 상태로 유지할 수 있습니다. 예를 들어 클라이언트와 서버로 구성된 애플리케이션을 디버깅하는 경우 클라이언트를 일시 중단 상태로 만들고 이미 실행 중인 서버에 연결할 수 있으므로 클라이언트가 실행되기 전에 서버 중단점을 설정하고 서버 작업을 유발할 수 있습니다.
프로세스에서 분리할 때 엔진은 필요에 따라 프로세스를 정상적으로 실행하거나, 프로세스를 종료하거나, 프로세스를 중단할 수 있습니다(다른 디버거가 연결되거나 종료될 때까지 일시 중단됨).
프로세스 ID 및 프로세스를 시작하는 데 사용되는 실행 파일 이미지의 이름을 포함하여 컴퓨터에서 실행 중인 모든 사용자 모드 프로세스에 대한 정보를 엔진에 쿼리할 수 있습니다. 이 정보는 디버그할 프로세스를 찾는 데 사용할 수 있습니다.
라이브, Kernel-Mode 대상
AttachKernel 메서드는 디버거 엔진을 Windows 커널에 연결합니다.
원격 대상
디버거 엔진을 사용하여 원격으로 디버그하는 경우 다음과 같은 두 가지 추가 단계가 있을 수 있습니다.
호스트 엔진에 연결합니다. 호스트 엔진이 instance 로컬 엔진이 아닌 경우 DebugConnect를 사용하여 호스트 엔진에 연결된 클라이언트 개체를 만듭니다.
호스트 엔진을 프로세스 서버 또는 커널 연결 서버에 연결합니다. 호스트 엔진이 대상에 직접 연결하지 않는 경우 프로세스 서버 또는 커널 연결 서버에 연결해야 합니다.
이제 클라이언트는 프로세스 서버 또는 커널 연결 서버를 통해 대상을 획득하도록 호스트 엔진에 지시할 수 있습니다.
대상 획득
대상을 획득할 때 대상에서 이벤트를 생성할 때까지 대상 획득이 완료되지 않습니다. 일반적으로 이는 먼저 메서드를 호출하여 대상에 디버거를 연결한 다음 WaitForEvent 를 호출하여 대상이 이벤트를 생성하도록 하는 것을 의미합니다. 대상이 크래시 덤프 파일인 경우에도 여전히 적용됩니다. 이러한 파일은 항상 일반적으로 덤프 파일을 만든 이벤트를 저장하기 때문입니다.
추가 정보
대상에 연결하는 방법에 대한 자세한 내용은 대상에 연결을 참조하세요.