다음을 통해 공유


IDebugClient5::AttachProcess 메서드(dbgeng.h)

AttachProcess 메서드는 디버거 엔진을 사용자 모드 프로세서에 연결합니다.

구문

HRESULT AttachProcess(
  [in] ULONG64 Server,
  [in] ULONG   ProcessId,
  [in] ULONG   AttachFlags
);

매개 변수

[in] Server

프로세스에 연결하는 데 사용할 프로세스 서버를 지정합니다. 서버가 0이면 엔진은 프로세스 서버를 사용하지 않고 로컬 프로세스에 연결합니다.

[in] ProcessId

디버거가 연결할 대상 프로세스의 프로세스 ID를 지정합니다.

[in] AttachFlags

디버거가 대상 프로세스에 연결하는 방법을 제어하는 플래그를 지정합니다. 이러한 플래그에 대한 자세한 내용은 비고를 참조하세요.

반환 값

이 메서드는 오류 값을 반환할 수도 있습니다. 자세한 내용은 반환 값을 참조하세요 .

반환 코드 Description
S_OK
메서드를 성공적으로 수행했습니다.

설명

이 메서드는 라이브 사용자 모드 디버깅에만 사용할 수 있습니다.

참고WaitForEvent 메서드가 호출될 때까지 엔진이 프로세스에 완전히 연결되지 않습니다. 프로세스에서 이벤트를 생성한 후에만(예: create-process 이벤트) 디버거 세션에서 사용할 수 있게 됩니다.
 
라이브 사용자 모드 대상을 만들고 연결하는 방법에 대한 자세한 내용은 라이브 User-Mode 대상을 참조하세요.

DEBUG_ATTACH_XXX 비트 플래그는 디버거 엔진 이 사용자 모드 프로세스에 연결하는 방법을 제어합니다. 커널 대상에 연결할 때 사용되는 DEBUG_ATTACH_XXX 옵션은 AttachKernel을 참조하세요.

다음 표에서는 가능한 플래그 값에 대해 설명합니다.

상수 Description
DEBUG_ATTACH_NONINVASIVE 대상에 비침용적으로 연결합니다. 비침범성 디버깅에 대한 자세한 내용은 비침범성 디버깅(사용자 모드)을 참조하세요.

이 플래그가 설정되면 플래그 DEBUG_ATTACH_EXISTING, DEBUG_ATTACH_INVASIVE_NO_INITIAL_BREAK 및 DEBUG_ATTACH_INVASIVE_RESUME_PROCESS 설정하면 안 됩니다.

DEBUG_ATTACH_EXISTING 디버거가 이미 연결되어 있고 중단되었을 수 있는 애플리케이션에 다시 연결합니다. 대상에 다시 연결하는 방법에 대한 자세한 내용은 대상 애플리케이션에 다시 연결을 참조하세요.

이 플래그가 설정되면 다른 DEBUG_ATTACH_XXX 플래그를 설정하면 안 됩니다.

DEBUG_ATTACH_NONINVASIVE_NO_SUSPEND 비침용적으로 연결할 때 대상의 스레드를 일시 중단하지 마세요.

이 플래그가 설정되면 플래그 DEBUG_ATTACH_NONINVASIVE 설정해야 합니다.

DEBUG_ATTACH_INVASIVE_NO_INITIAL_BREAK (Windows XP 이상) 대상에 연결할 때 초기 침입을 요청하지 마세요.

이 플래그가 설정되면 플래그가 DEBUG_ATTACH_NONINVASIVE DEBUG_ATTACH_EXISTING 설정하면 안 됩니다.

DEBUG_ATTACH_INVASIVE_RESUME_PROCESS 이 플래그가 설정되면 플래그가 DEBUG_ATTACH_NONINVASIVE DEBUG_ATTACH_EXISTING 설정하면 안 됩니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 dbgeng.h(Dbgeng.h 포함)

추가 정보

.attach(프로세스에 연결)

AbandonCurrentProcess

AttachKernel

ConnectProcessServer

CreateProcess2

CreateProcessAndAttach2

DetachCurrentProcess

GetRunningProcessDescription

GetRunningProcessSystemIds

IDebugClient

IDebugClient2

IDebugClient3

IDebugClient4

IDebugClient5

TerminateCurrentProcess

디버거 엔진