Iniciando um programa
Os usuários que quiserem depurar um programa podem pressionar F5 para executar o depurador do IDE. Isso começa uma série de eventos que finalmente resultar do IDE ao se conectar a um mecanismo de depuração (DE), que é por sua vez conectado, ou anexado, o programa da seguinte maneira:
O IDE chama primeiro o pacote de projeto para obter configurações de depuração do projeto de ativo da solução. As configurações incluem o diretório inicial, as variáveis de ambiente, a porta em que o programa será executado e o DE usar 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 chama o sistema operacional para iniciar o programa. Como conseqüência de iniciar o programa, o ambiente de tempo de execução do programa será carregado. Por exemplo, se um programa está escrito na MSIL, o common language runtime será chamado para executar o programa.
- ou -
Se um DE não for especificado, a porta chama o sistema operacional para iniciar o programa, que faz com que o ambiente de tempo de execução do programa a ser carregado.
Dica
Se um DE é usado para iniciar um programa, é provável que o mesmo DE será anexado ao programa.
Dependendo se a porta ou o DE iniciado o programa, o ambiente de tempo de execução ou o DE cria uma descrição do programa, ou um nó e notifica a porta que o programa estiver sendo executado.
Dica
É recomendável que o ambiente de tempo de execução criar o nó do programa, porque o nó do programa é uma leve representação de um programa que possa ser depurado.Não é necessário para carregar um inteiro DE apenas para criar e registrar um nó do programa.Se destina a DE ser executado no processo de IDE, mas nenhum IDE está realmente sendo executado, deve haver um componente que pode adicionar um nó de programa à porta.
O programa recentemente criado, juntamente com outros programas, relacionadas ou não relacionados, iniciado ou anexado a partir do mesmo IDE, compor uma sessão de depuração.
Programaticamente, quando o usuário primeiro pressiona F5, Visual Studiodo pacote debug chama o pacote de projeto (que é associado com o tipo de programa que está sendo iniciado) por meio do DebugLaunch método, que por sua vez preenche uma VsDebugTargetInfo2 estrutura com configurações de depuração do projeto ativo da solução. Essa estrutura é passada de volta para o pacote de depuração através de uma chamada para o LaunchDebugTargets2 método. Em seguida, o pacote de depuração instancia o Gerenciador de depuração de sessão (SDM), que inicia o programa que está sendo depurado e qualquer associado debug mecanismos.
Um dos argumentos passados para o SDM é o GUID do DE para ser usado para iniciar o programa.
Se não o GUID DE GUID_NULL, co-creates do SDM e chama seu IDebugEngineLaunch2::LaunchSuspended método para iniciar o programa. Por exemplo, se um programa escrito em código nativo, em seguida, IDebugEngineLaunch2::LaunchSuspended provavelmente chamará CreateProcess e ResumeThread (funções do Win32) para executar o programa.
Como conseqüência de iniciar o programa, o ambiente de tempo de execução do programa será carregado. Tanto o DE como o ambiente de tempo de execução, em seguida, cria um IDebugProgramNode2 para descrever o programa de interface e passa essa interface para IDebugPortNotify2::AddProgramNode para notificar a porta que o programa estiver sendo executado.
Se GUID_NULL é passado, a porta inicia o programa. Depois que o programa estiver sendo executado, o ambiente de tempo de execução cria um IDebugProgramNode2 para descrever o programa de interface e passa-o para IDebugPortNotify2::AddProgramNode. Isso notifica a porta que o programa estiver sendo executado. Em seguida, o SDM anexa o mecanismo de depuração para o programa em execução.
Nesta seção
Notificando a porta
Explica o que acontece depois que o programa será iniciado e a porta é notificada.Anexando após um lançamento.
Quando a sessão de depuração está pronta para anexar o DE para o programa de documentos.
Seções relacionadas
- Tarefas de depuração
Contém links para várias tarefas de depuração, como, por exemplo, iniciando um programa e avaliar expressões.