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.
Os usuários que desejam depurar um programa podem pressionar F5 para executar o depurador no IDE. Isso inicia uma série de eventos que, em última análise, resultam na conexão do IDE a um DE (mecanismo de depuração), que por sua vez está conectado ou anexado ao programa da seguinte maneira:
O IDE primeiro chama o pacote de projeto para obter as configurações de depuração de projeto ativas da solução. As configurações incluem o diretório inicial, as variáveis de ambiente, a porta na qual o programa será executado e o DE a ser usado para criar o programa, se especificado. Essas configurações são passadas para o pacote de depuração.
Se um DE for especificado, o DE chamará o sistema operacional para iniciar o programa. Como consequência da execução do programa, o ambiente de execução do programa é carregado. Por exemplo, se um programa for escrito no MSIL, o common language runtime será invocado para executar o programa.
- ou -
Se um DE não for especificado, a porta chamará o sistema operacional para iniciar o programa, o que faz com que o ambiente de runtime do programa seja carregado.
Observação
Se um DE for usado para iniciar um programa, é provável que o mesmo DE seja anexado ao programa.
Dependendo se o DE ou a porta iniciou o programa, o DE ou o ambiente em tempo de execução cria uma descrição do programa ou nó e notifica a porta em que o programa está em execução.
Observação
É recomendável que o ambiente em tempo de execução crie o nó do programa, pois o nó do programa é uma representação leve de um programa que pode ser depurado. Não é necessário carregar um Ambiente de Desenvolvimento (DE) completo apenas para criar e registar um nó de programa. Se o DE for projetado para ser executado no processo do IDE, mas nenhuma instância do IDE estiver realmente em execução, é necessário um componente que possa adicionar um nó de programa à porta de comunicação.
O programa recém-criado, juntamente com outros programas, relacionados ou não relacionados, iniciados ou anexados do mesmo IDE, compõem uma sessão de depuração.
Programaticamente, quando o usuário pressiona F5 pela primeira vez, o pacote de depuração do Visual Studio chama o pacote do projeto (que está associado ao tipo de programa que está sendo iniciado) por meio do DebugLaunch método, que, por sua vez, preenche uma VsDebugTargetInfo2 estrutura com as configurações de depuração de projeto ativas da solução. Essa estrutura é passada de volta para o pacote de depuração por meio de uma chamada para o LaunchDebugTargets2 método. Em seguida, o pacote de depuração instancia o SDM (gerenciador de depuração de sessão), que inicia o programa que está sendo depurado e quaisquer mecanismos de depuração associados.
Um dos argumentos passados para o SDM é o GUID do DE que será usado para iniciar o programa.
Se o GUID de DE não for
GUID_NULL, o SDM co-cria o DE e chama seu método LaunchSuspended para iniciar o programa. Por exemplo, se um programa for escrito em código nativo,IDebugEngineLaunch2::LaunchSuspendedprovavelmente chamaráCreateProcesseResumeThread(funções Win32) para executar o programa.Como consequência da inicialização do programa, o ambiente de execução do programa é carregado. O DE ou o ambiente em tempo de execução, em seguida, cria uma interface IDebugProgramNode2 para descrever o programa e passa essa interface para AddProgramNode para notificar a porta que o programa está em execução.
Se
GUID_NULLfor passado, a porta executará o programa. Depois que o programa estiver em execução, o ambiente de tempo de execução criará umaIDebugProgramNode2interface para descrever o programa e o transmitirá paraIDebugPortNotify2::AddProgramNode. Isso notifica a porta em que o programa está em execução. Em seguida, o SDM anexa o mecanismo de depuração ao programa em execução.
Nesta seção
Notificar a porta explica o que acontece depois que um programa é iniciado e a porta é notificada.
Anexar após uma inicialização quando a sessão de depuração estiver pronta para anexar o DE ao programa.
Conteúdo relacionado
- As tarefas de depuração contêm links para várias tarefas de depuração, como iniciar um programa e avaliar expressões.