IDebugEngine2::AttachIDebugEngine2::Attach

Anexa um mecanismo de depuração (DE) para um programa ou programas.Attaches a debug engine (DE) to a program or programs. Chamado pelo Gerenciador de depuração de sessão (SDM) quando o DE estiver em execução no processo para o SDM.Called by the session debug manager (SDM) when the DE is running in-process to the SDM.

SintaxeSyntax

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âmetrosParameters

pProgram
[in] Uma matriz de IDebugProgram2 objetos que representam os programas a serem anexados à.[in] An array of IDebugProgram2 objects that represent programs to be attached to. Esses são programas de porta.These are port programs.

rgpProgramNodes
[in] Uma matriz de IDebugProgramNode2 objetos que representam nós de programa, um para cada programa.[in] An array of IDebugProgramNode2 objects that represent program nodes, one for each program. Os nós de programa nesta matriz representam os mesmos programas como em pProgram.The program nodes in this array represent the same programs as in pProgram. Os nós de programa são fornecidos para que o DE possa identificar os programas para anexar a.The program nodes are given so that the DE can identify the programs to attach to.

celtPrograms
[in] Número de programas e/ou nós de programa na pProgram e rgpProgramNodes matrizes.[in] Number of programs and/or program nodes in the pProgram and rgpProgramNodes arrays.

pCallback
[in] O IDebugEventCallback2 objeto a ser usado para enviar eventos de depuração para o SDM.[in] The IDebugEventCallback2 object to be used to send debug events to the SDM.

dwReason
[in] Um valor a partir de ATTACH_REASON enumeração que especifica o motivo para anexar a esses programas.[in] A value from the ATTACH_REASON enumeration that specifies the reason for attaching these programs. Para obter mais informações, consulte a seção Comentários.For more information, see the Remarks section.

Valor de retornoReturn Value

Se for bem-sucedido, retornará S_OK; caso contrário, retorna um código de erro.If successful, returns S_OK; otherwise, returns an error code.

ComentáriosRemarks

Há três razões para anexar a um programa, da seguinte maneira:There are three reasons for attaching to a program, as follows:

  • ATTACH_REASON_LAUNCH indica que o DE é anexar ao programa porque o usuário iniciou o processo que o contém.ATTACH_REASON_LAUNCH indicates that the DE is attaching to the program because the user launched the process that contains it.

  • ATTACH_REASON_USER indica que o usuário explicitamente solicitou o DE anexar a um programa (ou o processo que contém um programa).ATTACH_REASON_USER indicates that the user has explicitly requested the DE to attach to a program (or the process that contains a program).

  • ATTACH_REASON_AUTO indica que o DE é anexar a um determinado programa porque ele já está sendo depurado outros programas em um determinado processo.ATTACH_REASON_AUTO indicates the DE is attaching to a particular program because it is already debugging other programs in a particular process. Isso também é chamado a anexação automática.This is also called auto-attach.

    Quando este método é chamado, o DE precisa enviar esses eventos em sequência:When this method is called, the DE needs to send these events in sequence:

  1. IDebugEngineCreateEvent2 (se ele não já foi enviado para uma determinada instância do mecanismo de depuração)IDebugEngineCreateEvent2 (if it has not already been sent for a particular instance of the debug engine)

  2. IDebugProgramCreateEvent2IDebugProgramCreateEvent2

  3. IDebugLoadCompleteEvent2IDebugLoadCompleteEvent2

    Além disso, se for o motivo para anexação ATTACH_REASON_LAUNCH, o DE que precisa enviar o IDebugEntryPointEvent2 eventos.In addition, if the reason for attaching is ATTACH_REASON_LAUNCH, the DE needs to send the IDebugEntryPointEvent2 event.

    Uma vez o obtém do IDebugProgramNode2 do objeto correspondente para o programa que está sendo depurado, ela pode ser consultada para qualquer interface privada.Once the DE gets the IDebugProgramNode2 object corresponding to the program being debugged, it can be queried for any private interface.

    Antes de chamar os métodos de um nó de programa na matriz fornecida pelo pProgram ou rgpProgramNodes, representação, se necessário, deve ser habilitada no IDebugProgram2 interface que representa o nó do programa.Before calling the methods of a program node in the array given by pProgram or rgpProgramNodes, impersonation, if required, should be enabled on the IDebugProgram2 interface that represents the program node. Normalmente, no entanto, essa etapa não é necessária.Normally, however, this step is not necessary. Para obter mais informações, consulte problemas de segurança.For more information, see Security Issues.

Consulte tambémSee also