원격 대상
호스트 컴퓨터인 컴퓨터(원격 클라이언트 또는 서버)에 따라 두 가지 형태의 원격 디버깅이 있습니다. 호스트 컴퓨터디버거 엔진 활성화된 컴퓨터입니다. 다른 컴퓨터에서 디버거 엔진은 단지 호스트 엔진에 명령 및 데이터를 릴레이하는 프록시 역할을 합니다.
명령 실행 및 확장및 기호 로드와 같은 모든 디버거 작업은 호스트 엔진에서 수행됩니다. 또한 디버거 세션은 호스트 엔진을 기준으로 합니다.
컴퓨터에서 현재 실행 중인 디버깅 서버 및 프로세스 서버를 나열하려면 OutputServers사용합니다.
서버 디버깅 및 클라이언트 디버깅
디버깅 서버 호스트 역할을 하고 디버깅 클라이언트에서 연결을 수신 대기하는 디버거 엔진의 인스턴스입니다. StartServer
디버깅 클라이언트 는 디버거 엔진이 프록시 역할을 하며 디버깅 서버에 디버거 명령과 I/O를 보내는 인스턴스입니다. DebugConnect
DebugConnect 반환된 클라이언트 개체는 디버깅 서버의 디버거 세션에 자동으로 조인되지 않습니다. ConnectSession
디버깅 서버와 디버깅 클라이언트 간의 통신은 주로 디버거 명령과 서버로 전송된 RPC 호출 및 클라이언트로 다시 전송되는 명령 출력으로 구성됩니다.
프로세스 서버, 커널 연결 서버 및 스마트 클라이언트
프로세스 서버 및 커널 연결 서버 모두 프록시 역할을 하는 디버거 엔진의 인스턴스이며, 스마트 클라이언트에서 연결을 수신 대기하고, 이러한 원격 클라이언트의 요청에 따라 메모리, 프로세서 또는 운영 체제 작업을 수행합니다.
프로세스 서버 동일한 컴퓨터에서 실행 중인 프로세스의 디버깅을 용이하게 합니다.
커널 연결 서버 연결 서버를 실행하는 컴퓨터에 연결된 Windows 커널 디버깅 대상의 디버깅을 용이하게 합니다. 프로세스 서버는 StartProcessServer
스마트 클라이언트 호스트 엔진 역할을 하고 프로세스 서버에 연결된 디버거 엔진의 인스턴스입니다. ConnectProcessServer
원격 클라이언트가 프로세스 서버에서 작업을 마치면 DisconnectProcessServer를 사용하여 연결을 끊거나, EndProcessServer를 사용하여 프로세스 서버에 종료 요청을 할 수 있습니다. 실행 중인 컴퓨터에서 프로세스 서버를 종료하려면 작업 관리자를 사용하여 프로세스를 종료합니다.
프로세스 서버와 스마트 클라이언트 간의 통신은 일반적으로 낮은 수준의 메모리, 프로세서 및 운영 체제 작업 및 원격 클라이언트에서 서버로 전송되는 요청으로 구성됩니다. 그러면 결과가 클라이언트로 다시 전송됩니다.