다음을 통해 공유


디버거 시작

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

메서드 및 이벤트 시퀀스

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

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

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

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

    -또는-

    S_OK가 반환되면, DE는 SDM의 프로세스 중에 로드됩니다. 그런 다음, SDM은 다음 작업을 수행합니다.

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

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

    3. Attach 호출.

  4. DE는 IDebugEngineCreateEvent2 이벤트를 EVENT_SYNC 속성과 함께 SDM에 전송합니다.

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

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

  7. DE는 IDebugLoadCompleteEvent2EVENT_SYNC 특성으로 SDM에게 보냅니다.

  8. DE는 IDebugEntryPointEvent2EVENT_SYNC 속성과 함께 SDM에 보냅니다.