IDebugEngine2::Attach
Anexa um mecanismo de depuração (DE) para um programa ou programas. Chamado pelo Gerenciador de sessão de depuração (SDM) quando o DE está em execução em processo para o SDM.
HRESULT Attach(
IDebugProgram2** pProgram,
IDebugProgramNode2** rgpProgramNodes,
DWORD celtPrograms,
IDebugEventCallback2* pCallback,
ATTACH_REASON dwReason
);
int Attach(
IDebugProgram2[] pProgram,
IDebugProgramNode2[] rgpProgramNodes,
uint celtPrograms,
IDebugEventCallback2 pCallback,
Enum_ATTACH_REASON dwReason
);
Parâmetros
pProgram
[in] Uma matriz de IDebugProgram2 objetos que representam programas seja anexada à. Esses são os programas de porta.rgpProgramNodes
[in] Uma matriz de IDebugProgramNode2 objetos que representam nós do programa, uma para cada programa. Os nós do programa nessa matriz representam os mesmos programas como em pProgram. Os nós de programa são fornecidos para que o DE possa identificar os programas para anexar a.celtPrograms
[in] Número de programas e/ou nós de programa na pProgram e rgpProgramNodes arrays.pCallback
[in] O IDebugEventCallback2 objeto a ser usado para enviar eventos de depuração para o SDM.dwReason
[in] Um valor a partir do ATTACH_REASON enumeração que especifica o motivo para anexar a esses programas. Para obter mais informações, consulte a seção comentários.
Valor de retorno
Se bem-sucedida, retorna S_OK; Caso contrário, retorna um código de erro.
Comentários
Há três razões para anexar a um programa, como segue:
ATTACH_REASON_LAUNCHindica que o DE é anexar ao programa porque o usuário iniciou o processo que o contém.
ATTACH_REASON_USERindica que o usuário solicitou explicitamente o DE anexar a um programa (ou processo que contém um programa).
ATTACH_REASON_AUTOindica que o DE é anexar a um determinado programa porque ele já está depurando outros programas em um determinado processo. Isso também é chamado de conexão automática.
Quando esse método é chamado, o DE precisa enviar esses eventos em seqüência:
IDebugEngineCreateEvent2(se ele ainda não tiver sido enviado para uma determinada instância do mecanismo de depuração)
Além disso, se o motivo para a anexação é ATTACH_REASON_LAUNCH, o DE precisa enviar o IDebugEntryPointEvent2 evento.
Uma vez o recebe da IDebugProgramNode2 de objeto correspondente para o programa que está sendo depurado, ele pode ser consultado para qualquer interface privada.
Antes de chamar os métodos de um nó de programa na matriz dada por pProgram ou rgpProgramNodes, representação, se necessário, deve ser ativada a IDebugProgram2 interface que representa o nó do programa. Normalmente, no entanto, essa etapa não é necessária. Para obter mais informações, consulte Problemas de segurança.