Destinos
O mecanismo de depurador dá suporte à depuração de diferentes tipos de destinos, destinos no modo de usuário e kernel , destinos dinâmicos e arquivos de despejo de memória e destinos locais e remotos. Há diferentes métodos para conectar o mecanismo a esses diferentes tipos de destinos.
Arquivos de despejo de memória
Os arquivos de despejo de memória do modo de usuário e do kernel são abertos com OpenDumpFile. O mecanismo também é capaz de criar arquivos de despejo de um destino com WriteDumpFile2.
Destinos dinâmicos User-Mode
O mecanismo de depurador pode criar e anexar a processos de modo de usuário.
A criação de um processo é feita fornecendo uma linha de comando e, opcionalmente, um diretório e um ambiente iniciais para o novo processo. Em seguida, o mecanismo pode 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 um servidor, é possível criar um cliente em um estado suspenso e anexar a um servidor já em execução, permitindo que os pontos de interrupção do servidor sejam definidos antes que o cliente seja executado e provoque operações de servidor.
Ao desanexar de um processo, o mecanismo pode opcionalmente deixar o processo em execução normalmente, encerrar o processo ou abandonar o processo (deixando-o suspenso até que outro depurador se anexe a ele ou seja encerrado).
O mecanismo pode ser consultado para obter informações sobre todos os processos de modo de usuário em execução 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 depurar.
Destinos dinâmicos Kernel-Mode
O método AttachKernel conecta o mecanismo de depurador a um kernel do Windows.
Destinos remotos
Ao usar o mecanismo de depurador para depurar remotamente, há potencialmente duas etapas extras:
Conecte-se ao mecanismo de host. Se o mecanismo de host não for a instância do mecanismo local, use DebugConnect para criar um objeto cliente conectado ao mecanismo de host.
Conecte o mecanismo de host ao servidor de processo ou ao servidor de conexão de kernel. Se o mecanismo de host não se conectar diretamente ao destino, ele deverá se conectar a um servidor de processo ou servidor de conexão de kernel que o faça.
Agora, o cliente pode informar o mecanismo de host para adquirir um destino por meio do servidor de processo ou do servidor de conexão de kernel.
Aquisição de destinos
Ao adquirir um destino, a aquisição do destino não será concluída até que o destino 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 se mantém verdadeiro quando o destino é um arquivo de despejo de memória, pois eles sempre armazenam um evento normalmente o evento que fez com que o arquivo de despejo fosse criado.
Informações adicionais
Para obter detalhes sobre como anexar a destinos, consulte Conectando-se a destinos.