Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Depois de registrar seus programas com a porta apropriada, você deve anexar o depurador ao programa que deseja depurar.
Escolher como anexar
Há três maneiras pelas quais o gerenciador de depuração de sessão (SDM) tenta anexar ao programa que está sendo depurado.
Para programas que são iniciados pelo mecanismo de depuração por meio do método LaunchSuspended (típico de linguagens interpretadas, por exemplo), o SDM obtém a interface IDebugProgramNodeAttach2 do objeto IDebugProgramNode2 associado ao programa que está sendo anexado. Se o SDM puder obter a
IDebugProgramNodeAttach2interface, o SDM chamará o método OnAttach . OIDebugProgramNodeAttach2::OnAttachmétodo retornaS_OKpara indicar que ele não anexou ao programa e que outras tentativas podem ser feitas para anexar ao programa.Se o SDM puder obter a interface IDebugProgramEx2 do programa ao qual está sendo conectado, o SDM chamará o método Attach . Essa abordagem é típica de programas que foram lançados remotamente pelo fornecedor portuário.
Se o programa não puder ser anexado por meio dos métodos ou
IDebugProgramEx2::Attach, o SDM carregará o mecanismo de depuração (se ainda não tiver sido carregado) chamando aCoCreateInstancefunção e, em seguida, chamará o método Attach .IDebugProgramNodeAttach2::OnAttachEssa abordagem é típica de programas lançados localmente por um fornecedor portuário.Também é possível para um fornecedor de porto personalizado chamar o
IDebugEngine2::Attachmétodo na implementação do método pelo fornecedor deIDebugProgramEx2::Attachporto personalizado. Normalmente, nesse caso, o fornecedor de porta personalizada inicia o mecanismo de depuração na máquina remota.O anexo é obtido quando o gerenciador de depuração de sessão (SDM) chama o método Attach .
Se você executar seu DE no mesmo processo que o aplicativo a ser depurado, deverá implementar os seguintes métodos de IDebugProgramNode2:
-
Depois que o
IDebugEngine2::Attachmétodo é chamado, siga estas etapas em sua implementação doIDebugEngine2::Attachmétodo:
Envie um objeto de evento IDebugEngineCreateEvent2 para o SDM. Para obter mais informações, consulte Enviando eventos.
Chame o método GetProgramId no objeto IDebugProgram2 que foi passado para o
IDebugEngine2::Attachmétodo.Isso retorna um
GUIDque é usado para identificar o programa. OGUIDdeve ser armazenado no objeto que representa o programa local para o DE, e deve ser retornado quando oIDebugProgram2::GetProgramIdmétodo é chamado naIDebugProgram2interface.Observação
Se você implementar a
IDebugProgramNodeAttach2interface, o programa éGUIDpassado para oIDebugProgramNodeAttach2::OnAttachmétodo. IssoGUIDé usado para o programa retornadoGUIDpeloIDebugProgram2::GetProgramIdmétodo.Envie um objeto de evento IDebugProgramCreateEvent2 para notificar o SDM de que o objeto local
IDebugProgram2foi criado para representar o programa para o DE. Para obter detalhes, consulte Enviando eventos.Observação
Este não é o mesmo
IDebugProgram2objeto que foi passado para oIDebugEngine2::Attachmétodo. O objeto passadoIDebugProgram2anteriormente é reconhecido apenas pela porta e é um objeto separado.