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에서 이 메서드를 호출할 때 제공됩니다.