Como utilizar dh.exe para resolver problemas relacionados com fugas de memória do modo de utilizador

Traduções de Artigos Traduções de Artigos
Artigo: 243318 - Ver produtos para os quais este artigo se aplica.
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
importante : Este artigo contém informações sobre como modificar o registo. Antes de modificar o registo, certifique-se de que efectua uma cópia de segurança e de que compreende como o restaurar o registo se ocorrer um problema. Para obter informações sobre como efectuar uma cópia de segurança, restaurar e editar o registo, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
256986Descrição do registo do Microsoft Windows
Expandir tudo | Reduzir tudo

Sumário

Este artigo descreve como configurar e utilizar a ferramenta de área de visualização (dh.exe) para resolver problemas de modo de utilizador fugas de memória de processos e serviços.

Mais Informação

aviso : a utilização incorrecta do Editor de registo poderá provocar problemas graves que poderão forçar a reinstalação do sistema operativo. Microsoft não garante que os problemas resultantes da utilização incorrecta do Editor de registo possam ser resolvidos. As suas próprias risco da utilização do Editor de registo.

Dh.exe é uma ferramenta modo de caracteres para visualizar informações sobre atribuições de pilha um processo ou utilização do conjunto de memória de modo kernel. A utilização de dh.exe para resolução de problemas fugas de modo kernel está fora do âmbito deste artigo.

Quando os sinalizadores globais de rastreio de pilha estiverem definidos no registo, é criada uma base de dados no arranque do sistema que contém informações em tempo real sobre actividades de atribuição de memória. No instante que é efectuada uma atribuição ou um livre, um instantâneo da pilha do thread actual é gravado e armazenado na base de dados. Pode utilizar estas informações para identificar a causa de uma fuga de memória.

Para activar o controlo de atribuição:
  1. Inicie o Editor de registo (Regedt32.exe).
  2. Localize o valor GlobalFlag na seguinte chave no registo:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
  3. No menu Editar , clique em valor DWORD escreva 23000 e, em seguida, clique em OK . Este valor define os bits seguintes no sinalizador global do:
    Criar utilizador modo de rastreio da pilha base de dados
    Criar o rastreio da pilha kernel modo base de dados
    Ativar a depuração do subsistema Win32
  4. Saia do Editor de registo.
  5. Instale os símbolos de depuração na pasta %SystemRoot%\Symbols.Para obter informações adicionais sobre como instalar símbolos de depuração, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
    141465Como instalar símbolos para o Dr. Watson erro de depuração
  6. Mudar o nome do ficheiro Ntdll.dll original para Ntdll.fre. Isto é feito melhor através da rede ou de uma instalação paralela do Windows NT para impedir que violações de partilha.
  7. Copie a versão verificada do Ntdll.dll para a pasta % SystemRoot%\System32.
  8. Copie a versão seleccionada do ficheiro de símbolos de depuração Ntdll (Ntdll.dbg) para a pasta %SystemRoot%\Symbols\DLL.
  9. Encerre e reinicie o computador para permitir que as alterações tenham efeito.
  10. Crie um ficheiro batch chamado Dhsnap.bat na pasta onde se encontra dh.exe. O ficheiro batch deverá conter as linhas no ficheiro de exemplo abaixo:
    @ echo no
    Definir _NT_SYMBOL_PATH=%SystemRoot%\Symbols
    DH.exe -p %1 -m -l -s -g -h
Depois de seguir os passos listados acima, o sistema está pronto para atribuição de rastreio. Pode utilizar dh.exe para extrair os dados da base de dados atribuição depois da fuga:
  1. Identifica o ID de processo (PID) do processo que estiver a resolver problemas (o processo de destino). Pode fazê-lo executando o Tlist.exe a partir da Windows NT 4.0 Resource Kit.

    Nota : se Tlist.exe não estiver disponível, é possível obter o PID, premindo CTRL + ALT + DELETE, clicando em Gestor de tarefas , clicando no separador processos e localizar o PID do processo de destino na lista.
  2. Poderá ser necessário dar ao utilizador actual "Access All" permissões para o processo de destino se o processo tiver definições de segurança especiais. Pode fazê-lo com a ferramenta Pview.exe incluída com o Windows NT 4.0 Resource Kit. Execute Pview.exe e faça clique sobre o processo de destino. Clique em Segurança de processo para activar a caixa de diálogo de segurança . Adicione o utilizador actual à lista e atribuir esse utilizador "Access All" permissões. Clique em OK para aplicar as alterações. Saia Pview.exe.

    Nota : definições Pview.exe são voláteis e repor as predefinições quando reiniciar o sistema.
  3. Para gerar os dados de registo dh.exe, execute o ficheiro batch criado anteriormente com o PID do processo de destino a partir de uma linha de comandos. Se o PID não for especificado, é apresentada uma mensagem de erro.

    Por exemplo, o seguinte comando gera uma cópia dh.exe do processo 116:
    C:\NTRESKIT>DH.exe -p 116 - m -l -s -g -h
    DH: Escrever informações de estado de saída para C:\NTRESKIT\DH_116.dmp
O ficheiro de registo gerado pelo dh.exe é um ficheiro de texto que contém informações para o processo de destino de rastreio de pilha. Para cada pilha, todas as pilhas de chamadas que resultaram numa atribuição de memória (e não são necessário um correlacionar livre) são registadas na secção "Pilha Hogs". Pilhas de chamadas cobradas com as atribuições de maior são na parte superior e diminuir para baixo o registo. Nota que esse estado de repouso devem ser considerado (o que significa que algum código pode não devolver memória para dias por predefinição). Fugas são normalmente óbvias do registo e são sempre na parte superior. Depois de localizar a pilha de chamadas problema, examine a origem de cada função na pilha de chamadas até encontrar a fuga.

Referências

Os utilitários mencionados neste artigo (Dh.exe Pview.exe e Tlist.exe) estão disponíveis com o Windows NT 4.0 Resource Kit Supplement 2 ou posterior.

Verificado versões dos ficheiros Ntdll.dll e Ntdll.dbg estão disponíveis na Microsoft Developer Network (MSDN).

Propriedades

Artigo: 243318 - Última revisão: 6 de fevereiro de 2014 - Revisão: 1.1
A informação contida neste artigo aplica-se a:
  • Microsoft Windows NT Workstation 4.0 Developer Edition
  • Microsoft Windows NT Server 4.0 Standard Edition
Palavras-chave: 
kbnosurvey kbarchive kbmt kbhowto kbtshoot KB243318 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 243318

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com