Compartilhar via


Método IDebugClient5::AttachProcess (dbgeng.h)

O método AttachProcess conecta o mecanismo de depurador a um processo de modo de usuário.

Sintaxe

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

Parâmetros

[in] Server

Especifica o servidor de processo a ser usado para anexar ao processo. Se Server for zero, o mecanismo se conectará a um processo local sem usar um servidor de processo.

[in] ProcessId

Especifica a ID do processo de destino ao qual o depurador será anexado.

[in] AttachFlags

Especifica os sinalizadores que controlam como o depurador é anexado ao processo de destino. Para obter detalhes sobre esses sinalizadores, consulte Comentários.

Retornar valor

Esse método também pode retornar valores de erro. Consulte Valores retornados para obter mais detalhes.

Código de retorno Descrição
S_OK
O método foi bem-sucedido.

Comentários

Esse método está disponível apenas para depuração dinâmica do modo de usuário.

Nota O mecanismo não se anexa completamente ao processo até que o método WaitForEvent seja chamado. Somente depois que o processo tiver gerado um evento , por exemplo, o evento create-process , ele ficará disponível na sessão do depurador.
 
Para obter mais informações sobre como criar e anexar a destinos dinâmicos do modo de usuário, consulte Destinos do Live User-Mode.

Os sinalizadores de bits DEBUG_ATTACH_XXX controlam como o mecanismo de depurador é anexado a um processo de modo de usuário. Para obter as opções DEBUG_ATTACH_XXX usadas ao anexar a um destino de kernel, consulte AttachKernel.

A tabela a seguir descreve os valores de sinalizador possíveis.

Constante Descrição
DEBUG_ATTACH_NONINVASIVE Anexe ao destino de forma não invasiva. Para obter mais informações sobre a depuração não invasiva, consulte Depuração Não Invasiva (Modo de Usuário).

Se esse sinalizador estiver definido, os sinalizadores DEBUG_ATTACH_EXISTING, DEBUG_ATTACH_INVASIVE_NO_INITIAL_BREAK e DEBUG_ATTACH_INVASIVE_RESUME_PROCESS não deverão ser definidos.

DEBUG_ATTACH_EXISTING Anexar novamente a um aplicativo ao qual um depurador já anexou (e possivelmente abandonou). Para obter mais informações sobre como anexar novamente aos destinos, consulte Anexação novamente ao Aplicativo de Destino.

Se esse sinalizador estiver definido, os outros sinalizadores DEBUG_ATTACH_XXX não deverão ser definidos.

DEBUG_ATTACH_NONINVASIVE_NO_SUSPEND Não suspenda os threads do destino ao anexar não invasivamente.

Se esse sinalizador estiver definido, o sinalizador DEBUG_ATTACH_NONINVASIVE também deverá ser definido.

DEBUG_ATTACH_INVASIVE_NO_INITIAL_BREAK (Windows XP e posterior) Não solicite uma interrupção inicial ao anexar ao destino.

Se esse sinalizador estiver definido, os sinalizadores DEBUG_ATTACH_NONINVASIVE e DEBUG_ATTACH_EXISTING não deverão ser definidos.

DEBUG_ATTACH_INVASIVE_RESUME_PROCESS Se esse sinalizador estiver definido, os sinalizadores DEBUG_ATTACH_NONINVASIVE e DEBUG_ATTACH_EXISTING não deverão ser definidos.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho dbgeng.h (inclua Dbgeng.h)

Confira também

.attach (Anexar ao Processo)

AbandonCurrentProcess

AttachKernel

ConnectProcessServer

CreateProcess2

CreateProcessAndAttach2

DetachCurrentProcess

GetRunningProcessDescription

GetRunningProcessSystemIds

Idebugclient

IDebugClient2

IDebugClient3

IDebugClient4

IDebugClient5

TerminateCurrentProcess

mecanismo de depurador