Клиентские объекты

Почти все взаимодействие с подсистемой отладчика осуществляется через клиентские объекты, которые часто называются клиентами. Каждый клиент предоставляет реализацию интерфейсов подсистемы верхнего уровня. Каждый интерфейс предоставляет другой набор методов, которые можно использовать для взаимодействия с подсистемой и с помощью подсистемы целевых объектов. Экземпляр подсистемы может иметь множество клиентов, каждый из которых имеет собственное состояние.

Основные клиенты

Основной клиент — это клиент, присоединенный к текущему сеансу отладки. Изначально при создании нового клиентского объекта он не является основным клиентом. Клиент становится основным клиентом при получении целевого объекта (например, путем вызова CreateProcess2) или подключения к сеансу отладки с помощью Подключение Session. Команда отладчика .client содержит только первичные клиенты.

Объекты обратного вызова

Объекты обратного вызова можно зарегистрировать в каждом клиенте. Существует три типа объектов обратного вызова:

  1. Входные объекты обратного вызова (или обратные вызовы ввода): подсистема вызывает обратные вызовы ввода для запроса входных данных. Например, отладчик с окном консоли может зарегистрировать обратный вызов ввода, чтобы предоставить обработчику входные данные от пользователя, или отладчик может зарегистрировать обратный вызов ввода, чтобы предоставить подсистеме входные данные из файла.

  2. Выходные объекты обратного вызова (или выходные обратные вызовы): подсистема вызывает обратные вызовы вывода для отображения выходных данных. Например, отладчик с окном консоли может зарегистрировать обратный вызов вывода, чтобы представить выходные данные отладчика пользователю, или отладчик может зарегистрировать обратный вызов вывода для отправки выходных данных в файл журнала.

  3. Объекты обратного вызова событий (или обратные вызовы событий): подсистема вызывает обратные вызовы событий всякий раз, когда событие происходит в целевом объекте (или происходит изменение состояния обработчика). Например, библиотека расширений отладчика может зарегистрировать обратный вызов события для отслеживания определенных событий или выполнения автоматических действий при возникновении определенного события.

Удаленная отладка

Клиентские объекты упрощают обмен данными с удаленными экземплярами ядра узлов. Функция Отладка Подключение создает клиентский объект, подключенный к экземпляру удаленного обработчика; методы, вызываемые этим клиентом, выполняются удаленным обработчиком и объектами обратного вызова, зарегистрированными локально с клиентом, при выполнении вызовов удаленного обработчика.

Дополнительные сведения

Дополнительные сведения о создании и использовании клиентских объектов см. в разделе "Использование объектов обратного вызова". Дополнительные сведения о регистрации объектов обратного вызова см. в разделе "Использование объектов обратного вызова".