Partilhar via


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:

  1. 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.

  2. 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.