Compartilhar via


Metas

O mecanismo de depurador dá suporte à depuração de diferentes tipos de alvos: alvos em modo de usuário e alvos em modo kernel, alvos dinâmicos e arquivos de despejo de memória, e alvos locais e remotos. Há métodos diferentes para conectar o mecanismo a esses diferentes tipos de destinos.

Arquivos de despejo de memória

Os arquivos de despejo de falha 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 depuração pode tanto criar quanto conectar-se a processos em 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 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 morto).

O mecanismo pode ser consultado para obter informações sobre todos os processos de modo de usuário que estão 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 depuração.

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 local do mecanismo, use DebugConnect para criar um objeto cliente que esteja conectado ao mecanismo de host.

  2. Conecte o motor do host ao servidor de processo ou ao servidor de conexão do kernel. Se o mecanismo de host não se conectar diretamente ao destino, ele deverá se conectar a um servidor de processos ou a um servidor de conexão com o kernel que o faça.

Agora, o cliente pode instruir o mecanismo de host a adquirir um alvo por meio do servidor de processos ou do servidor de conexão do kernel.

Adquirindo alvos

Ao adquirir um destino, a aquisição do destino não é 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 é válido quando o destino é um arquivo de despejo de memória, pois esses arquivos sempre armazenam um evento - tipicamente o evento que provocou a criação do arquivo de despejo.

informações adicionais

Para obter detalhes sobre como conectar-se a destinos, consulte Conectar-se a destinos.