Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O mecanismo de depurador suporta depuração de diferentes tipos de alvos, alvos de modo de usuário e modo kernel, alvos ativos e ficheiros de despejo de memória, e alvos locais e remotos. Existem diferentes métodos para conectar o motor a esses diferentes tipos de alvos.
Arquivos de despejo de memória
Ambos os ficheiros de despejo de memória de modo utilizador e modo kernel são abertos com OpenDumpFile. O mecanismo também é capaz de criar arquivos de despejo a partir de um destino com WriteDumpFile2.
Alvos ao vivo, User-Mode
O motor do depurador pode tanto criar como anexar-se a processos em modo de utilizador.
A criação de um processo é feita fornecendo uma linha de comando e, opcionalmente, um diretório e ambiente iniciais para o novo processo. O mecanismo pode então se conectar ao novo processo ou manter o novo processo suspenso enquanto ele se conecta a outro processo. Por exemplo, ao depurar um aplicativo que consiste em um cliente e servidor, é possível criar um cliente em um estado suspenso e anexá-lo a um servidor já em execução, permitindo que pontos de interrupção do servidor sejam definidos antes que o cliente seja executado e provoque operações do servidor.
Ao se desprender de um processo, o mecanismo pode, opcionalmente, deixar o processo funcionando normalmente, matar o processo ou abandoná-lo (deixando-o suspenso até que outro depurador se conecte a ele ou seja morto).
O mecanismo pode ser consultado para obter informações sobre todos os processos de modo de usuário que estão sendo executados no computador, incluindo a ID do processo e o nome da imagem executável usada para iniciar o processo. Essas informações podem ser usadas para ajudar a localizar um processo para depuração.
Alvos ao vivo, Kernel-Mode
O método AttachKernel conecta o mecanismo de depurador a um kernel do Windows.
Alvos remotos
Ao usar o mecanismo de depurador para depurar remotamente, poderão existir duas etapas adicionais:
Conecte-se ao mecanismo host. Se o mecanismo host não for a instância do mecanismo local, use DebugConnect para criar um objeto cliente conectado ao mecanismo host.
Conecte o mecanismo host ao servidor de processo ou ao servidor de conexão do kernel. Se o mecanismo host não se conectar diretamente ao destino, ele deverá se conectar a um servidor de processo ou servidor de conexão do kernel que o faça.
Agora, o cliente pode instruir o mecanismo host a adquirir um alvo através do servidor de processo ou do servidor de conexão do kernel.
Aquisição de Alvos
Ao adquirir um alvo, a aquisição do alvo não é concluída até que o alvo gere um evento. Normalmente, isso significa primeiro chamar um método para anexar o depurador ao destino e, em seguida, chamar WaitForEvent para permitir que o destino gere um evento. Isso ainda é verdadeiro quando o destino é um arquivo de despejo de falha, pois eles sempre armazenam um evento - normalmente o evento que causou a criação do arquivo de despejo.
Informações adicionais
Para obter detalhes sobre como conectar-se a destinos, consulte Ligação a Destinos.