다음을 통해 공유


클라이언트 개체

디버거 엔진과의 거의 모든 상호 작용은 클라이언트 개체를 통해서이며, 종종 클라이언트라고도 합니다. 각 클라이언트는 최상위 엔진 인터페이스의 구현을 제공합니다. 각 인터페이스는 엔진 및 엔진을 통해 대상과 상호 작용하는 데 사용할 수 있는 다양한 메서드 집합을 제공합니다. 엔진 인스턴스에는 각각 자체 상태의 여러 클라이언트가 있을 수 있습니다.

기본 클라이언트

기본 클라이언트는 현재 디버깅 세션에 참가한 클라이언트입니다. 처음에는 새 클라이언트 개체가 만들어지면 기본 클라이언트가 아닙니다. 클라이언트는 대상을 획득하는 데 사용되거나(예: CreateProcess2 호출) 커넥트Session을 사용하여 디버깅 세션에 연결된 경우 기본 클라이언트가 됩니다. 디버거 명령 .clients는 기본 클라이언트만 나열합니다.

콜백 개체

콜백 개체는 각 클라이언트에 등록할 수 있습니다. 콜백 개체에는 다음 세 가지 유형이 있습니다.

  1. 입력 콜백 개체 (또는 입력 콜백): 엔진은 입력 콜백을 호출하여 입력을 요청합니다. 예를 들어 콘솔 창이 있는 디버거는 입력 콜백을 등록하여 엔진에 사용자의 입력을 제공하거나 디버거가 입력 콜백을 등록하여 엔진에 파일의 입력을 제공할 수 있습니다.

  2. 출력 콜백 개체 (또는 출력 콜백): 엔진은 출력 콜백을 호출하여 출력을 표시합니다. 예를 들어 콘솔 창이 있는 디버거는 사용자에게 디버거의 출력을 표시하기 위해 출력 콜백을 등록하거나, 디버거가 출력 콜백을 등록하여 출력을 로그 파일로 보낼 수 있습니다.

  3. 이벤트 콜백 개체 (또는 이벤트 콜백): 엔진은 이벤트가 대상에서 발생할 때마다 이벤트 콜백을 호출합니다(또는 엔진 상태가 변경됨). 예를 들어 디버거 확장 라이브러리는 이벤트 콜백을 등록하여 특정 이벤트를 모니터링하거나 특정 이벤트가 발생할 때 자동화된 작업을 수행할 수 있습니다.

원격 디버깅

클라이언트 개체는 호스트 엔진의 원격 인스턴스에 대한 통신을 용이하게 합니다. Debug커넥트 함수는 원격 엔진 인스턴스에 연결된 클라이언트 개체를 만듭니다. 이 클라이언트에서 호출된 메서드는 원격 엔진에 의해 실행되고 원격 엔진이 콜백을 호출할 때 클라이언트에 로컬로 등록된 콜백 개체가 호출됩니다.

추가 정보

클라이언트 개체를 만들고 사용하는 방법에 대한 자세한 내용은 콜백 개체 사용을 참조 하세요. 콜백 개체 등록에 대한 자세한 내용은 콜백 개체 사용을 참조하세요.