IDebugEngine2::Attach

Anexa um mecanismo de depuração (DE) a um programa ou programas. Chamado pelo gerenciador de depuração de sessão (SDM) quando o DE está sendo executado no processo para o SDM.

Sintaxe

int Attach( 
   IDebugProgram2[]     pProgram,
   IDebugProgramNode2[] rgpProgramNodes,
   uint                 celtPrograms,
   IDebugEventCallback2 pCallback,
   Enum_ATTACH_REASON   dwReason
);

Parâmetros

pProgram
[em] Uma matriz de objetos IDebugProgram2 que representam programas aos quais serão anexados. Estes são programas de porta.

rgpProgramNodes
[em] Uma matriz de objetos IDebugProgramNode2 que representam nós de programa, um para cada programa. Os nós de programa nessa matriz representam os mesmos programas que no pProgram. Os nós do programa são fornecidos para que o DE possa identificar os programas aos quais se conectar.

celtPrograms
[em] Número de programas e/ou nós de programa nas pProgram matrizes e rgpProgramNodes .

pCallback
[em] O objeto IDebugEventCallback2 a ser usado para enviar eventos de depuração para o SDM.

dwReason
[em] Um valor da enumeração ATTACH_REASON que especifica o motivo para anexar esses programas. Para obter mais informações, consulte a seção Comentários.

Valor de retorno

Se tiver êxito, retornará S_OK. Caso contrário, retornará um código de erro.

Comentários

Há três razões para anexar a um programa, como segue:

  • ATTACH_REASON_LAUNCH indica que o DE está anexando ao programa porque o usuário iniciou o processo que o contém.

  • ATTACH_REASON_USER indica que o usuário solicitou explicitamente o DE para anexar a um programa (ou o processo que contém um programa).

  • ATTACH_REASON_AUTO indica que o DE está anexando a um programa específico porque ele já está depurando outros programas em um processo específico. Isso também é chamado de auto-anexação.

    Quando esse método é chamado, o DE precisa enviar esses eventos em sequência:

  1. IDebugEngineCreateEvent2 (se ainda não tiver sido enviado para uma instância específica do mecanismo de depuração)

  2. IDebugProgramCreateEvent2

  3. IDebugLoadCompleteEvent2

    Além disso, se o motivo para anexar for ATTACH_REASON_LAUNCH, o DE precisará enviar o evento IDebugEntryPointEvent2 .

    Depois que o DE obtém o objeto IDebugProgramNode2 correspondente ao 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 fornecida por pProgram ou rgpProgramNodes, a representação, se necessário, deve ser habilitada na interface que representa o IDebugProgram2 nó do programa. Normalmente, no entanto, essa etapa não é necessária. Para obter mais informações, consulte Problemas de segurança.

Confira também