다음을 통해 공유


디버거 시작

디버거를 시작하려면 적절한 특성을 사용하여 올바른 메서드 및 이벤트 시퀀스를 보내야 합니다.

메서드 및 이벤트의 시퀀스

  1. SDM(세션 디버그 관리자)은 디버그 메뉴를 선택한 다음, 시작을 선택하여 호출됩니다. 자세한 내용은 프로그램 시작을 참조하세요.

  2. SDM은 OnAttach 메서드를 호출합니다.

  3. DE(디버그 엔진) 프로세스 모델에 따라 IDebugProgramNodeAttach2::OnAttach 메서드는 다음 메서드 중 하나를 반환하여 다음에 수행되는 작업을 결정합니다.

    S_FALSE가 반환되는 경우 DE(디버그 엔진)는 가상 머신의 프로세스에서 로드됩니다.

    또는

    S_OK가 반환되는 경우 DE는 SDM의 In Process로 로드됩니다. 그런 다음, SDM이 다음 작업을 수행합니다.

    1. GetEngineInfo를 호출하여 DE의 엔진 정보를 가져옵니다.

    2. DE를 공동으로 만듭니다.

    3. Attach를 호출합니다.

  4. DE는 EVENT_SYNC 특성을 사용하여 IDebugEngineCreateEvent2를 SDM에 보냅니다.

  5. DE는 EVENT_SYNC 특성을 사용하여 IDebugProgramCreateEvent2를 SDM에 보냅니다.

  6. DE는 EVENT_SYNC 특성을 사용하여 IDebugThreadCreateEvent2를 SDM에 보냅니다.

  7. DE는 EVENT_SYNC 특성을 사용하여 IDebugLoadCompleteEvent2를 SDM에 보냅니다.

  8. DE는 EVENT_SYNC 특성을 사용하여 IDebugEntryPointEvent2를 SDM에 보냅니다.