다음을 통해 공유


IDebugProcess2::Attach

SDM(세션 디버그 관리자)을 프로세스에 연결합니다.

구문

int Attach( 
   IDebugEventCallback2 pCallback,
   Guid[]               rgguidSpecificEngines,
   uint                 celtSpecificEngines,
   int[]                rghrEngineAttach
);

매개 변수

pCallback
[in] 디버그 이벤트 알림에 사용되는 IDebugEventCallback2 개체입니다.

rgguidSpecificEngines
[in] 프로세스에서 실행 중인 프로그램을 디버그하는 데 사용할 디버그 엔진의 GUID 배열입니다. 이 매개 변수는 null 값일 수 있습니다. 자세한 내용은 설명을 참조하세요.

celtSpecificEngines
[in] rgguidSpecificEngines 배열의 디버그 엔진 수와 rghrEngineAttach 배열의 크기입니다.

rghrEngineAttach
[in, out] 디버그 엔진에서 반환하는 HRESULT 코드 배열입니다. 이 배열의 크기는 celtSpecificEngines 매개 변수에 지정됩니다. 각 코드는 일반적으로 S_OK 또는 S_ATTACH_DEFERRED입니다. 후자는 DE가 현재 프로그램에 연결되어 있지 않음을 나타냅니다.

Return Value

성공하면 S_OK를 반환하고, 실패하면 오류 코드를 반환합니다. 다음 테이블에는 가능한 값이 나와 있습니다.

설명
E_ATTACH_DEBUGGER_ALREADY_ATTACHED 지정된 프로세스가 이미 디버거에 연결되어 있습니다.
E_ATTACH_DEBUGGEE_PROCESS_SECURITY_VIOLATION 연결 프로시저 중에 보안 위반이 발생했습니다.
E_ATTACH_CANNOT_ATTACH_TO_DESKTOP 데스크톱 프로세스를 디버거에 연결할 수 없습니다.

설명

프로세스에 연결하면 rgguidSpecificEngines 배열에 지정된 DE(디버그 엔진)에 의해 디버그할 수 있는 해당 프로세스에서 실행 중인 모든 프로그램에 SDM이 연결됩니다. rgguidSpecificEngines 매개 변수를 null 값으로 설정하거나 배열에 GUID_NULL을 포함시켜 프로세스의 모든 프로그램에 연결합니다.

프로세스에서 발생하는 모든 디버그 이벤트는 지정된 IDebugEventCallback2 개체로 전송됩니다. 이 IDebugEventCallback2 개체는 SDM에서 이 메서드를 호출할 때 제공됩니다.

참고 항목