다음을 통해 공유


원격 디버깅(디버거 엔진)

원격 디버깅은 예를 들어 네트워크 연결을 통해 대상과 클라이언트의 통신이 간접적일 때 발생합니다. 원격 디버깅 시 대상 디버깅에 디버거 엔진 인스턴스를 둘 이상 포함할 수 있습니다. 그러나 이러한 인스턴스 중 하나만 디버깅 세션을 담당합니다. 이 인스턴스를호스트 엔진이라고 합니다.

가능한 많은 구성이 있습니다. 클라이언트 개체는 호스트 엔진(스마트 클라이언트) 또는 엔진의 다른 인스턴스(클라이언트 디버깅)에서 만들 수 있습니다. 호스트 엔진은 대상에 직접 연결할 수 있습니다(서버 디버깅). 또는 프록시를 대상에 직접 연결할 수 있습니다(프로세스 서버 및 커널 연결 서버).

여러 클라이언트가 호스트 엔진에 동시에 연결할 수 있습니다. 또한 호스트 엔진은 동일한 디버깅 세션에서 여러 대상에 연결할 수 있습니다. 필요에 따라 클라이언트와 호스트 엔진 간에 호스트 엔진과 각 대상 사이에 하나 이상의 프록시가 있을 수 있습니다.

스마트 클라이언트는 호스트 엔진과 직접 통신하는 클라이언트 개체입니다. 디버깅 클라이언트는 DebugConnect;를 호출하여 생성됩니다. 클라이언트는 엔진의 API에서 메서드 호출을 나타내는 RPC 호출을 사용하여 호스트 엔진과 통신합니다(호스트 엔진이 클라이언트의 콜백 개체에 대해호출 포함).

디버깅 서버는 대상과 직접 통신하는 엔진 인스턴스이며 호스트 엔진이기도 합니다. 프로세스 서버 및 커널 연결 서버는 대상과 직접 통신하지만 호스트 엔진은 아닙니다. 호스트 엔진은 낮은 수준의 메모리, 프로세서 및 운영 체제 요청을 전송하여 프로세스 서버 또는 커널 연결 서버와 통신하고 서버는 결과를 다시 보냅니다.

참고 커널 디버깅을 위한 일반적인 2 컴퓨터 설정입니다. 여기서 한 컴퓨터는 대상이고 다른 컴퓨터는 호스트 컴퓨터에서 엔진 인스턴스가 하나만 있고 대상과 직접 통신하기 때문에 원격 디버깅으로 간주되지 않습니다.

추가 정보

원격 디버깅 수행에 대한 자세한 내용은 원격 대상참조하세요.