디버거 엔진과의 거의 모든 상호 작용은 클라이언트 개체를 통해서이며, 종종 클라이언트라고도 합니다. 각 클라이언트는 최상위 엔진 인터페이스의 구현을 제공합니다. 각 인터페이스는 엔진 및 엔진을 통해 대상과 상호 작용하는 데 사용할 수 있는 다양한 메서드 집합을 제공합니다. 엔진 인스턴스에는 각각 자체 상태의 여러 클라이언트가 있을 수 있습니다.
기본 클라이언트
기본 클라이언트는 현재 디버깅 세션에 참가한 클라이언트입니다. 처음에는 새 클라이언트 개체가 만들어지면 기본 클라이언트가 아닙니다. 클라이언트는 대상을 획득하는 데 사용되거나(예: CreateProcess2 호출) ConnectSession을 사용하여 디버깅 세션에 연결된 경우 기본 클라이언트가 됩니다. 디버거 명령 .clients는 기본 클라이언트만 나열합니다.
콜백 개체
콜백 개체는 각 클라이언트에 등록할 수 있습니다. 콜백 개체에는 다음 세 가지 유형이 있습니다.
입력 콜백 개체 (또는 입력 콜백): 엔진은 입력 콜백을 호출하여 입력을 요청합니다. 예를 들어 콘솔 창이 있는 디버거는 입력 콜백을 등록하여 엔진에 사용자의 입력을 제공하거나 디버거가 입력 콜백을 등록하여 엔진에 파일의 입력을 제공할 수 있습니다.
출력 콜백 개체 (또는 출력 콜백): 엔진은 출력 콜백을 호출하여 출력을 표시합니다. 예를 들어 콘솔 창이 있는 디버거는 사용자에게 디버거의 출력을 표시하기 위해 출력 콜백을 등록하거나, 디버거가 출력 콜백을 등록하여 출력을 로그 파일로 보낼 수 있습니다.
이벤트 콜백 개체 (또는 이벤트 콜백): 엔진은 이벤트가 대상에서 발생할 때마다 이벤트 콜백을 호출합니다(또는 엔진 상태가 변경됨). 예를 들어 디버거 확장 라이브러리는 이벤트 콜백을 등록하여 특정 이벤트를 모니터링하거나 특정 이벤트가 발생할 때 자동화된 작업을 수행할 수 있습니다.
원격 디버깅
클라이언트 개체는 호스트 엔진의 원격 인스턴스에 대한 통신을 용이하게 합니다. DebugConnect 함수는 원격 엔진 인스턴스에 연결된 클라이언트 개체를 만듭니다. 이 클라이언트에서 호출된 메서드는 원격 엔진에 의해 실행되고 원격 엔진이 콜백을 호출할 때 클라이언트에 로컬로 등록된 콜백 개체가 호출됩니다.
추가 정보
클라이언트 개체를 만들고 사용하는 방법에 대한 자세한 내용은 콜백 개체 사용을 참조하세요. 콜백 개체 등록에 대한 자세한 내용은 콜백 개체 사용을 참조하세요.