Поделиться через


Присоединение и отключение программы

Присоединение отладчика требует отправки правильной последовательности методов и событий с соответствующими атрибутами.

Последовательность методов и событий

  1. Диспетчер отладки сеанса вызывает метод OnAttach .

    На основе модели IDebugProgramNodeAttach2::OnAttach процесса обработчика отладки (DE) метод возвращает один из следующих методов, который определяет, что происходит дальше.

    Если S_FALSE возвращается, подсистема отладки успешно подключена к программе. В противном случае метод Attach вызывается для завершения процесса присоединения.

    Если S_OK возвращается, de de должен быть загружен в том же процессе, что и SDM. SDM выполняет следующие задачи:

    1. Вызывает GetEngineInfo , чтобы получить сведения о подсистеме DE.

    2. Совместно создает DE.

    3. Подключение вызовов.

  2. De отправляет идентификатор IDebugEngineCreateEvent2 в SDM с атрибутом EVENT_SYNC .

  3. DE отправляет идентификатор IDebugProgramCreateEvent2 в SDM с атрибутом EVENT_SYNC .

  4. DE отправляет идентификатор IDebugLoadCompleteEvent2 в SDM с атрибутом EVENT_SYNC_STOP .

    Отсоединение от программы — это простой двухэтапный процесс, как показано ниже.

  5. SDM вызывает отсоединение.

  6. DE отправляет IDebugProgramDegramDevent2.