Como usar o ADPlus para solucionar "paralisações" e "falhas"

Traduções de Artigos Traduções de Artigos
Artigo: 286350 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

O ADPlus (ADPlus) é uma ferramenta da Microsoft atendimento (PSS) que pode solucionar o problema de qualquer processo ou aplicativo que pára de responder (paralisa) ou falha. Freqüentemente, você pode usar o ADPlus como uma ferramenta de substituição para o Monitor de exceção do Microsoft Internet Information Server (IIS) (6.1/7.1) e o despejo de processo do modo de usuário. Essas são duas ferramentas separadas que PSS usa com freqüência para isolar o que faz com que um processo parar de responder (travar) ou fechar inesperadamente (trave) em um ambiente Microsoft Windows DNA.

Mais Informação

Requisitos do sistema

O ADPlus tem os seguintes requisitos mínimos:
  • Windows NT 4.0 Service Pack 4 ou posterior
  • Windows Scripting Host versão 5.6 ou mais recente
  • Pelo menos 10 megabytes (MB) de espaço livre no disco ou compartilhamento de rede onde o ADPlus colocará os arquivos de saída
  • Microsoft Debugging Tools for Windows instalado

Onde você obtém o ADPlus?


O ADPlus está incluído com o Microsoft Debugging Tools for Windows mais recente. Para obter o Microsoft Debugging Tools for Windows mais recentes, visite o seguinte site da Microsoft:
http://www.microsoft.com/whdc/devtools/debugging/default.mspx

As ferramentas de depuração estão listadas em dois locais na tela Opções de instalação no Assistente de instalação do SDK do Windows. Se você deseja instalar as ferramentas de depuração para Windows no computador no qual você está trabalhando, você deve selecionar oFerramentas de depuração para Windowsopção emUtilitários comuns. Se você deseja configurar as ferramentas de depuração para Windows em um computador diferente, você deve selecionar oFerramentas de depuraçãoopção em Pacotes redistribuíveisPara fazer o download de todas as três versões dos pacotes de instalação de ferramentas de depuração (x86, x64, Itanium).

ObservaçãoA versão mais recente do Microsoft Debugging Tools for Windows é fornecida como parte do SDK do Windows. Além disso, o nome do arquivo foi alterado de ADPlus. vbs para ADPlus_Old.vbs. Além disso, o ADplus.exe foi adicionado. Portanto, ADplus.exe é executado quando você digita somenteADPlus. ADplus.exe não é igual a ADPlus_Old.vbs. Este artigo menciona apenas a versão. vbs. Quando você deseja executar a versão. vbs, você precisa digitarADPlus_old.vbs.


Novos recursos para o ADPlus versão 6.0

O ADPlus versão 6.0 foi totalmente reescrito. A ferramenta tem novos switches e os novos recursos. Agora você pode configurar a ferramenta por meio de um arquivo de configuração externo. Você pode exibir informações atualizadas sobre os novos recursos e opções no arquivo de Ajuda do depurador (Debugger. chm) incluído no pacote do Microsoft Windows Debuggers.

Debugger. chm está localizado na mesma pasta que ADPlus. vbs. Para localizar a documentação do ADPlus, clique no Conteúdo guia e, em seguida, clique nos seguintes itens:
  • Usando ferramentas de depuração para Windows
  • Arquivos de despejo de travamento
  • Arquivos de despejo do modo de usuário
  • Criando um arquivo de despejo do modo de usuário
  • ADPlus
Você também pode encontrar a documentação do ADPlus clicando no Índice Tipo de guia. ADPlus Na caixa de texto de palavra-chave.

Qual é o ADPlus?

O ADPlus é baseado em console Microsoft Visual Basic script. Ele automatiza o depurador do Microsoft CDB para produzir despejos de memória e arquivos de log que contêm a saída de depuração de um ou mais processos. Cada vez que você executar o ADPlus, (despejos de memória e arquivos de texto que contêm informações de depuração) as informações de depuração é colocada em uma nova pasta exclusivamente nomeada (tal como C:\Temp\Crash_Mode__Date_01-22-2001__Time_09-41-08AM) no sistema de arquivos local ou em um compartilhamento de rede remota. Além disso, cada arquivo que o ADPlus cria tem um nome exclusivo (como 1708) para evitar a substituição de arquivos mais antigos com os mais recentes.

O ADPlus funciona com qualquer processo no modo de usuário ou serviço como o Internet Information Services (IIS), Microsoft Transaction Server (MTS) ou aplicativos Microsoft COM+.

Estes são alguns dos recursos do ADPlus:
  • O ADPlus utiliza os depuradores mais recentes da Microsoft para recursos aprimorados, velocidade e confiabilidade.
  • Quando o ADPlus está despejando uma memória para vários processos, ele faz isso de forma assíncrona para que cada processo seja congelado e despejado ao mesmo tempo. Esse método pode fornecer um eficaz "instantâneo" de todo o aplicativo no momento em que o ADPlus foi executado. Você deve capturar todos os processos que compõem um aplicativo e todos os processos que o aplicativo usa ao mesmo tempo, para capturar o estado do aplicativo no momento em que o problema ocorre. Isso é especialmente importante para aplicativos que fazem chamadas de procedimento remoto para outros processos.
  • O ADPlus tem uma interface de linha de comando. Porque o ADPlus não tem uma interface gráfica do usuário, você pode executá-lo quiet modo (para suprimir as caixas de diálogo) a partir do shell do comando remoto (um shell de comando que é remoto usando o Remote. exe). No modo silencioso, os erros aparecem no console e são gravados no log de eventos. Para obter mais informações sobre como executar o ADPlus a partir do shell do comando remoto, consulte a seção "Cenários de uso" deste artigo.
  • Se você usar o -Notificar switch quando o ADPlus monitorar falhas e o Windows Messenger é iniciado, o ADPlus poderá alertar um usuário ou computador de um travamento por meio do serviço Windows Messenger.
  • Quando o ADPlus monitora um processo no modo de falha, se ocorrer uma falha, o ADPlus enviará informações importantes sobre o tipo de travamento ao log de eventos.
  • O ADPlus suporta a implantação do XCOPY. Se você instalar o pacote de depuradores incluído no ADPlus em um computador de teste, você pode copiar a pasta onde os depuradores estavam instalados para outro computador. Além disso, o ADPlus não requer que você registre quaisquer componentes de modelo de objeto componente (COM) personalizados no sistema. Dessa forma, você pode usar o ADPlus nos servidores de produção que possuem uma configuração de software bloqueada. Para remover o ADPlus, exclua a pasta onde ele foi instalado ou copiado.

Quando você deve usar o ADPlus?

O ADPlus destina-se para fornecer o que Atendimento Microsoft profissionais com informações de depuração que eles devem ter para isolar a causa dos problemas que ocorrem em ambientes complexos.

Utilize o ADPlus para capturar informações de depuração se você estiver enfrentando problemas a seguir:
  • Processos que param de responder.
  • Processos que consomem 100 por cento de CPU em um computador de processador único, 50 por cento de CPU em um computador de processador duplo, 25 por cento de CPU em um computador com processador quad e assim por diante.
  • Processos que falham ou param inesperadamente.

Quando você não deve usar o ADPlus?

Não utilize o ADPlus nas seguintes situações:
  • Se você deve solucionar problemas de um programa ou processo que fecha inesperadamente durante a inicialização. Você só pode usar o ADPlus para processos que iniciam com êxito. Para solucionar problemas de processos que fecham inesperadamente durante a inicialização, o despejo de processo do modo de usuário pode ser uma solução melhor. Para obter mais informações sobre o despejo de processo do modo de usuário, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
    253066Disponibilidade de ferramentas de suporte OEM fase 3 Service Release 2
    Como alternativa, você pode usar os depuradores mais recentes para depurar manualmente o processo. Para obter mais informações sobre os depuradores mais recentes, visite o seguinte site da Microsoft:
    http://www.microsoft.com/whdc/devtools/debugging/default.mspx
  • Se houver um efeito notável no desempenho ao utilizar o ADPlus no modo de falha. Normalmente, isso é causado pelas bibliotecas de vínculo dinâmico (DLLs) ou programas que geram muitas exceções do Microsoft Visual C++ EH. (Essas exceções ocorrem quando você usar o C++. throw instrução ou quando você usa try/catch. blocos). Programas que gravam muitas informações para o fluxo de saída de depuração também podem causar queda de desempenho. Na grande maioria dos casos, o ADPlus não afeta o desempenho visivelmente quando ele estiver sendo executado no modo de falha.
  • Se você estiver executando em um ambiente de clusters certas precauções cuidadas ao utilizar o ADPlus.Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
    841673Um servidor em um cluster pode falhar ao tentar criar um arquivo de despejo do armazenamento de informações usando o ADPlus ou o Userdump no Exchange 2000 Server ou o Exchange Server 2003

Como o ADPlus funciona?

O ADPlus tem dois modos de operação:
  • Modo "Paralisação" é usado para solucionar problemas de paralisações de processo, 100% de utilização de CPU e outros problemas que envolvem uma falha. Ao utilizar o ADPlus no modo de paralisação, você deve aguardar até que o processo ou processos parar de responder antes de executar o script (ao contrário do modo de falha, modo de paralisação não é persistente).
  • Modo "Falha" é utilizado para solucionar falhas que resultam em erros do Dr. Watson ou qualquer outro tipo de erro que faz com que um programa ou serviço feche inesperadamente. Ao utilizar o ADPlus no modo de falha, você deve iniciar o ADPlus antes de o travamento ocorre. Você pode configurar o ADPlus para notificar um administrador ou um computador de uma falha por meio do -Notificar switch.

Modo de paralisação

Nesse modo, o ADPlus imediatamente produz despejos de memória total para todos os processos que estão especificados na linha de comando depois que o script foi concluída. Cada arquivo. dmp criado é colocado em uma pasta que contém o carimbo de data/hora quando o ADPlus foi executado. Cada nome de arquivo contém o nome do processo, a identificação do processo e o carimbo de data/hora quando o ADPlus foi executado. Enquanto a memória do processo está sendo despejada para um arquivo, o processo é congelado. Após ter sido criado o arquivo de despejo de memória, o processo é reiniciado usando um noninvasive anexar/retirar com o depurador CDB.

Dica de uso Você pode usar o ADPlus no modo de paralisação em vez do Userdump para despejar a memória para um ou mais processos. Além disso, modo de paralisação funciona dentro de uma sessão do Terminal Server.

Modo de falha

Nesse modo, o ADPlus anexa o depurador CDB a todos os processos que estão especificados na linha de comando. O ADPlus configura automaticamente o depurador para monitorar os seguintes tipos de exceções:
  • Identificador inválido
  • Instrução ilegal
  • Divisão de número inteiro por Zero
  • Divisão por Zero de ponto flutuante
  • Estouro de inteiros
  • Seqüência de bloqueio inválida
  • Violação de acesso
  • Estouro de pilha
  • Exceção de C++ EH
  • Exceção desconhecida
Você pode usar o ADPlus no modo de falha em vez do Monitor de exceção do IIS ou o Userdump quando estiver solucionando esses tipos de exceções. Porque o modo de falha utiliza um "invasor" anexa através o depurador CDB, ele não funciona dentro de uma sessão do Microsoft Windows NT 4.0 ou Windows 2000 Terminal Server. Somente modo de paralisação funciona dentro de uma sessão do Terminal Server nesses sistemas operacionais porque elas exigem o uso de um noninvasive attach. Para obter mais informações sobre como invasiva e noninvasive anexar a um processo com os depuradores mais recentes, consulte o "usando ferramentas de depuração para Windows: anexação a um processo em execução (modo de usuário)" seção de ajuda dos depuradores.

Observação Há suporte para o modo de falha em uma sessão do Terminal Server nos sistemas operacionais Windows XP e Microsoft Windows Server 2003.

Quando o ADPlus está executando no modo de falha, um depurador permanece anexado a cada processo que é especificado na linha de comando para o tempo de vida do processo até que uma exceção fatal seja retida e o processo pare inesperadamente ou um usuário pressiona a combinação de teclas CTRL + C para separar o depurador desse processo. Separar manualmente o depurador do processo, você deve maximizar a janela do depurador e, em seguida, pressione CTRL + C para separar o depurador.

Quando você pressiona CTRL + C, o ADPlus retém esse comando começa a relacionar as pilhas para todos os threads em um arquivo de log e, em seguida, produz um mini-registro memória despejo do processo antes de separar do depurador. Porque o modo de falha executa um anexo, o processo é interrompido quando o depurador é separado. Você deve reiniciar o processo. Se for um processo do MTS ou COM+, o processo será reiniciado automaticamente na próxima vez que for feita uma chamada para um componente nesse pacote.

Exceções de primeira instância

Cada tipo de exceção (como, por exemplo, uma violação de acesso ou um estouro de pilha) pode ser aumentado para um depurador como uma primeira chance exceção ou uma segunda chance exceção. Por definição, uma exceção first chance não é fatal, a menos que não seja manuseada corretamente usando um manipulador de erro. Se esse problema ocorre, a exceção será novamente exibida como uma exceção de segunda instância (somente um depurador poderá manuseá). Se nenhum depurador manusear uma exceção de segunda instância, o aplicativo é encerrado.

Para obter mais informações sobre primeiro e segundo chance exceções e o Windows NT de SEH (manipulação de exceção estruturada), clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
105675Manipulação de exceção de primeira e segunda instância
Por padrão, quando o ADPlus detecta uma exceção de primeira chance (não fatal) para todos os tipos de exceções exceto desconhecido e EH, ele toma as seguintes ações:
  1. Pausa o processo para registrar a data e hora em que a exceção ocorreu no arquivo de log para o processo que está sendo monitorado.
  2. Registra a pilha do thread ID e a chamada para o thread que gerou a exceção no arquivo de log para o processo que está sendo monitorado.
  3. Produz um (registro de despejo de memória mini nomeados com exclusividade. dump -u /m) do processo no momento em que a exceção ocorreu, e então reinicia o processo.
Observação Por padrão, o ADPlus não produz exceções desconhecidas e um registro de despejo de memória mini-registro exclusivo de EH de primeira chance porque essas exceções ocorrem com freqüência. Normalmente, essas exceções são manuseadas pelo código em um processo ou a DLL de tratamento de erros. Como são exceções manipuladas, elas não se tornam exceções de segunda instância (não-manipulada) e não encerram o processo.

No entanto, você pode configurar o ADPlus para produzir despejos de memória de mini exclusivos para exceções desconhecidas e de EH de primeira chance. Para fazer isso, você deve usar um arquivo de configuração para personalizar o ADPlus.

Exceções de segunda instância

Quando o ADPlus detecta uma exceção de segunda instância (fatal) para todos os tipos de exceções (incluindo EH e desconhecidas), ele toma as seguintes ações:
  1. Pausa o processo para registrar a data e hora em que a exceção ocorreu no arquivo de log para o processo que está sendo monitorado.
  2. Registra a pilha do thread ID e a chamada para o thread que gerou a exceção no arquivo de log para o processo que está sendo monitorado.
  3. Produz um despejo de memória completo do processo no momento em que a exceção fatal ocorreu e fecha o depurador. Esta ação destrói o processo.
Observação Para profissionais de suporte do Atendimento Microsoft analisar despejos de memória, eles podem ter que obter cópias de quaisquer componentes personalizados ou DLLs e seus arquivos de símbolos correspondentes.Para obter mais informações sobre como criar arquivos de símbolos para DLLs, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
121366Arquivos PDB e DBG - o que são e como eles funcionam
291585 Como criar símbolos de depuração para um aplicativo do Visual C++
Para obter mais informações sobre como obter símbolos para produtos da Microsoft (necessários para analisar despejos de memória com depuradores), visite o seguinte site da Microsoft:
http://www.microsoft.com/whdc/devtools/debugging/symbolpkg.mspx

Opções de linha de comando do ADPlus

Para utilizar o ADPlus, você deve especificar uma série de opções de linha de comando ou argumentos para o script. No mínimo, o ADPlus requer duas chaves: uma que especifica o modo de operação e outra que especifica um processo alvo para operar.

Estas são as opções usadas com mais freqüência. Você também pode exibir a lista completa de switches executando ADPlus ? help, ou exibindo os depuradores (Debugger. chm) do arquivo de Ajuda.
  • -hang
    Esta opção configura o ADPlus para executar no modo de paralisação. Você deve usar essa opção com o -iis, -pn, ou -p switches. Não é possível usar -hang com o -Falha switch.

    Observação Quando o ADPlus está executando no modo de paralisação, você deve iniciar o ADPlus Após o processo pára de responder ou está consumindo uma alta porcentagem da CPU.
  • -Falha
    Esta opção configura o ADPlus para executar no modo de falha. Você deve usar essa opção com o -iis, -pn, ou -p switches. Não é possível usar -Falha com o -hang switch.

    Observação Quando o ADPlus está executando no modo de falha, você deve iniciar o ADPlus antes de o processo parar inesperadamente ou se torne instável.
  • -pn nome do processo
    O -pn switch é usada para especificar o nome de um processo que você deseja que o ADPlus analise. Para especificar mais de um processo, use vários -pn nome do processo switches. Por exemplo:
    -pn process1. exe - pn process2. exe
  • -p ID do processo
    O -p switch é usada para especificar o processo de identificação (PID) de um processo que você deseja que o ADPlus analise. Para especificar mais de um processo, use vários -p PID switches. Por exemplo:
    -p 1896 - p 1702
  • -scgeração de comando
    Ao contrário do -pn e -p switches, o qual especificar processos que já estejam executando para anexar o depurador, o -sc switch define os parâmetros para ser iniciado (ou gerado) e o aplicativo no depurador. Por exemplo:
    "c:\windows\system32\notepad.exe -sc
  • -iis
    O -iis switch é usada para depurar computadores servidores que estejam executando o Internet Information Server (IIS) 4.0 ou posterior. Quando você usa o ADPlus com a -iis switch, o ADPlus monitora todos os aplicativos fora de processo (Mtx.exe/Dllhost.exe) e em processo IIS (Inetinfo. exe). Você pode usar o -iis Alternar com o -pn Alternar ou o -p switch, ou você pode usá-la sozinha para analisar o IIS e todos os MTS executando / aplicativos COM+ de uma pane ou modo de paralisação.

    Se você estiver tentando analisar um computador servidor executando IIS 3.0 ou anterior, use o -pn Alternar e especifique Inetinfo. exe como o processo para monitorar.
  • -Notificar nome do computador ou nome de usuário
    Essa opção só é válida quando o ADPlus está executando no modo de falha. Essa opção instrui o ADPlus a alertar o nome de usuário especificado ou o nome do computador de um travamento. Quando o depurador se separa do processo por causa de uma exceção de segunda instância, ou quando um usuário pressiona CTRL + C para interromper a depuração, uma notificação é enviada para o usuário ou computador remoto por meio do serviço messenger local. Essa notificação ocorrerá somente se o serviço messenger local for iniciado no computador que está sendo depurado.
  • -quiet
    Essa opção instrui o ADPlus a suprimir todas as caixas de diálogo modal. Essa opção é útil se você estiver executando o ADPlus a partir do shell do comando remoto onde as caixas de diálogo modal podem causar o ADPlus espere indefinidamente por um usuário a clicar OK. Para obter melhores resultados, certifique-se de que esse é o primeiro switch que é passado para ADPlus. vbs.
  • -o diretório de saída
    Essa opção instrui o ADPlus onde colocar os arquivos de saída de depuração. Se você usar nomes extensos de arquivos, você deve incluí-los entre aspas duplas. Além disso, você pode usar um caminho UNC (\ \servidor\compartilhar). Se você usar um caminho UNC, o ADPlus cria uma nova pasta imediatamente abaixo do caminho UNC que você especificou. A pasta é nomeada para o servidor onde o ADPlus está executando (por exemplo, \ \servidor\compartilhar\Web1 ou \ \servidor\compartilhar\Web2). Essa opção é útil se o ADPlus está executando em vários computadores em uma web farm que são coloca todas as saídas no mesmo compartilhamento de rede.

Executar o ADPlus pela primeira vez

Por padrão, os depuradores instalam a pasta C:\Program Files\Debugging Tools for Windows. Para alterar a pasta de instalação, faça uma instalação personalizada ao instalar os depuradores e especifique uma pasta diferente. Como alternativa, se uma instalação típica foi realizada, copie o conteúdo da pasta programa Files\Debugging Tools for Windows para uma pasta diferente.

Para executar o ADPlus, abra um shell de comando, alterne para a pasta onde os depuradores foram instalados ou copiados e, em seguida, digite ADPlus. vbs.

Você pode ser solicitado para alterar o intérprete padrão de script de WScript. exe para Cscript. exe. A Microsoft recomenda que você permita que o ADPlus configure o CSCript como o intérprete de script padrão.

Sintaxe

O ADPlus utiliza a seguinte sintaxe: ADPlus. vbs modo de operação processos para monitorar chaves opcionaisonde modo de operação é -hang, ou -Falha
onde processos para monitorar é -iis, -pn processo. exe, ou -p PID
onde chaves opcionais é -Notificar, -o, ou -quiet.

Preparar o servidor para depuração de modo de falha

Antes de executar o ADPlus no modo de falha, você deve preparar o servidor para obter o máximo de informações do modo de falha do ADPlus sessões de depuração.

Etapas para preparar um servidor baseado no Windows 2000 para depurar no modo de falha

  1. Instale os símbolos do Windows 2000 SP1 ou SP2 na pasta C:\WINNT\Symbols nos servidores. Você pode baixar os símbolos dos seguintes sites da Microsoft:
    O Windows 2000 SP1
    http://download.microsoft.com/download/win2000platform/SP/SP1/nt5/en-US/SP1SYM.exe

    Windows 2000 SP2
    http://download.microsoft.com/download/win2000platform/SP/SP2/nt5/en-US/SP2SYM.exe

    Depois que você baixar o Sp1sym. exe ou Sp2sym. exe, execute o arquivo a partir da pasta designada.
  2. Quando solicitado, extraia os arquivos para uma nova pasta temporária, como C:\Sp1sym ou C:\Sp2sym, ou para uma unidade ou pasta que tenha espaço suficiente em disco.
  3. Execute C:\Sp1sym\Support\Debug\Symbols\i386\Symbols_spexe ou C:\Sp2sym\Support\Debug\Symbols\i386\Symbols_spexe (onde C:\Sp1sym ou C:\Sp2sym é a pasta onde você extraiu os arquivos na etapa anterior).
  4. Quando você for solicitado com o EULA, clique em Sim.
  5. Quando for solicitado para uma pasta onde você pode extrair os arquivos, clique em C:\WINNT\Symbolse então clique em OK. Observe que uma nova pasta C:\WINNT\Symbols aparece. Esta pasta contém várias subpastas que têm nomes como DLL e EXE.
  6. Copie os símbolos para as DLLs personalizadas e quaisquer post SP1 ou SP2 hotfixes para a pasta c:\WINNT\Symbols\Dll..
  7. Copie os símbolos para os seus arquivos. exe personalizados para a pasta c:\WINNT\Symbols\Exe.. Além disso, você deve obter quaisquer arquivos. PDB ou dbg dos desenvolvedores e, em seguida, colocar esses arquivos na pasta C:\WINNT\Symbols\Dll.
  8. Sobrescreva quaisquer arquivos. dbg ou. pdb já existentes na pasta C:\WINNT\Symbols\Dll com versões dos hotfixes.

    Observação Você pode usar a versão mais recente do Winzip para abrir pacotes de hotfix. Você pode extrair os símbolos a partir da subpasta \Debug.. A subpasta \Debug está contida em cada instalador de hotfix próprio.
  9. Criar uma variável de ambiente _ NT_SYMBOL_PATH e defina-a C:\WINNT\Symbols. Essa variável pode ser uma variável de sistema ou uma variável de ambiente do usuário.

Etapas para preparar um servidor baseado em Windows NT 4.0 para depurar no modo de falha

  1. Suponha que você está executando o Windows NT 4.0 Service Pack 6a. Instale os símbolos de Windows NT 4.0 SP6a na pasta C:\WINNT\Symbols nos servidores.
    Para obter mais informações sobre o Windows NT 4.0 Service Pack 6/6a, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
    241211Lista de bugs corrigidos no Windows NT 4.0 Service Pack 6/6a (parte 1)
    Após o download Sp6symi. exe, execute-o partir da pasta designada.
  2. Quando solicitado, extraia os arquivos na pasta C:\WINNT (ou substituir a pasta \WINNT adequada se os símbolos não foram instalados em C:\WINNT). Observe que uma nova pasta C:\WINNT\Symbols aparece com várias subpastas nomeadas DLL, EXE e outros.
  3. Copie as subpastas da pasta C:\WINNT\Symbols\IIS4 para C:\WINNT\Symbols. Quando você for solicitado a sobrescrever todos os arquivos, clique em Sim.
  4. Copie os símbolos para seu personalizado DLLs e quaisquer hotfixes pós-SP6a para a pasta c:\WINNT\Symbols\Dll..
  5. Copie os símbolos para os seus arquivos. exe personalizados para a pasta c:\WINNT\Symbols\Exe.. Além disso, você deve obter quaisquer arquivos. PDB ou dbg dos desenvolvedores e, em seguida, colocar esses arquivos na pasta C:\WINNT\Symbols\Dll.
  6. Sobrescreva quaisquer arquivos. dbg ou. pdb já existentes na pasta C:\WINNT\Symbols\Dll com versões dos hotfixes.

    Observação Você pode usar a versão mais recente do Winzip para abrir pacotes de hotfix. Você pode extrair os símbolos a partir da subpasta \Debug.. Essa subpasta está incluída em cada instalador de hotfix próprio.
  7. Criar uma variável de ambiente _ NT_SYMBOL_PATH e defina-a C:\WINNT\Symbols. Essa variável pode ser uma variável de sistema ou uma variável de ambiente do usuário.
Embora você não precisará fazer o download e instalar símbolos nos servidores que você está depurando, é altamente recomendável. Quando você baixar e instala símbolos no servidor, a saída que os arquivos de log capturam é muito mais útil para o Atendimento Microsoft.

Para obter mais informações sobre como obter o Microsoft Debug Symbols, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
268343Umdhtools.exe: Como usar o Umdh. exe para localizar vazamentos de memória
Depois de configurar seus servidores, você pode executar o ADPlus no modo de falha. Esse modo é descrito na seção "Cenários típicos de uso do ADPlus".


Cenários de uso comum do ADPlus

Esta seção descreve algumas situações típicas onde talvez seja necessário executar o ADPlus.

O processo pára de responder ou consome 100 por cento de utilização da CPU

Nesse cenário, um processo pode consumir aleatoriamente 100 por cento de CPU por períodos sustentados ou indefinidamente. Executar o ADPlus no modo de paralisação para obter um despejo de memória do processo ou processos que estão consumindo a CPU Após o problema ocorre. Por exemplo, use uma das seguintes sintaxes de comando:
O ADPlus-hang -p 1896
Esse comando executa o ADPlus no modo de paralisação e produz um arquivo de despejo de memória cheia de um processo que tem a PID 1896.

O ADPlus-hang - pn MyApp. exe
Esse comando executa o ADPlus no modo de paralisação e produz arquivos de despejo de memória completo de todos os processos que são nomeados como Myapp. exe.

O ADPlus-hang - iis - pn MyApp. exe -o c:\Temp.
Esse comando executa o ADPlus no modo de paralisação e produz arquivos de despejo de memória cheia de IIS, todas as instâncias de Mtx. exe ou Dllhost. exe, e todos os processos que são nomeados como Myapp. exe. Em seguida, ele coloca os arquivos de despejo de memória na pasta C:\Temp.
Quando você executa o ADPlus no modo de paralisação durante a condição de CPU de 100 por cento, a ferramenta produz arquivos de despejo de memória do processo ou processos que você especificar na linha de comando.

Observação Em certas situações raras, o depurador não pode ser capaz de anexar ao processo após a condição de CPU de 100 por cento ou paralisação ter ocorrido. Se você executar o ADPlus no modo de paralisação após o problema ocorreu, a ferramenta pode não produzir arquivos de despejo de memória. Nessas situações, talvez seja melhor anexar o depurador antes de o problema ocorreu. Para fazer isso, use uma das seguintes sintaxes de comando para executar o ADPlus no modo de falha:
O ADPlus-crash -p 1896
Esse comando executa o ADPlus no modo de falha para um processo que tem a PID 1896. O ADPlus espera que uma exceção ocorra ou para um usuário pressione CTRL + C na janela minimizada do depurador, para gerar um arquivo de despejo de memória e separar o depurador.

O ADPlus-crash - pn MyApp. exe
Esse comando executa o ADPlus no modo de falha para o processo nomeado MyApp. exe. O ADPlus espera que uma exceção ocorra ou para um usuário pressione CTRL + C na janela minimizada do depurador, para gerar um arquivo de despejo de memória e separar o depurador.

O ADPlus-crash - iis - pn MyApp. exe -o c:\Temp.
Esse comando executa o ADPlus no modo de falha para todas as instâncias dos processos nomeados como Myapp. exe e Inetinfo. exe e para todas as instâncias de Mtx ou Dllhost. exe. O ADPlus espera que uma exceção ocorra ou para um usuário pressione CTRL + C em uma ou mais das janelas minimizadas do depurador, para gerar o arquivo de despejo de memória (ou arquivos) e separar o depurador (ou depuradores). Na pasta C:\Temp, o ADPlus coloca os arquivos de despejo de memória e os arquivos de log.
Em seguida, Após o processo deixa de responder ou está consumindo 100 por cento de utilização da CPU, o usuário pode pressionar CTRL + C na janela minimizada do depurador (ou windows) que o ADPlus gera para que o depurador possa gerar um arquivo de despejo de memória do processo (ou processos).

Observação Por padrão, o ADPlus produz somente registros de despejo de memória mini quando o usuário pressiona CTRL + C. Esta opção economiza espaço em disco. Neste cenário, pode ser útil configurar o ADPlus para gerar um arquivo de despejo de memória completo quando o usuário pressiona CTRL + C. Para fazer isso, use o ?CTCF switch. Além disso, é freqüentemente útil capturar um arquivo de log de desempenho ou um arquivo de log do monitor do sistema para o período até e incluindo a condição de utilização de CPU de 100 por cento. No mínimo, esse arquivo de log deverá capturar os seguintes objetos em 1 a 5 intervalos segundo:
  • Memória
  • Processo
  • Processador
  • Sistema
  • Thread

O processo pára inesperadamente

Nesse cenário, um processo aleatoriamente pode fechar (ou crash) inesperadamente. Executar o ADPlus no modo de falha para obter um arquivo de despejo de memória do processo ou processos que fecham antes de o problema ocorre. Por exemplo, use uma das seguintes sintaxes de comando:
O ADPlus-crash - iis
Esse comando executa o ADPlus no modo de falha e faz com que ele anexe o depurador CDB a Inetinfo. exe e a todos os processos Mtx ou Dllhost. exe em execução no computador. O ADPlus aguarda qualquer chance de primeira e exceções de segunda instância ocorram. Por padrão, o ADPlus coloca todos os arquivos em uma subpasta da pasta de instalação porque o -o switch é omitido.

O ADPlus-silencioso - crash - iis-notificar computador remoto -o c:\Temp.
Esse comando executa silenciosamente o ADPlus (sem caixas de diálogo, registra toda saída para o log de eventos) no caso de falhas modo e faz com que ele anexe o depurador CDB a Inetinfo. exe e Mtx ou Dllhost. exe de todos os processos que está sendo executados no computador. Porque o -Notificar opção for usada, os depuradores notificam todos os usuários que fizeram logon no computador chamado computador remoto sempre que uma falha é detectada ou quando o processo que está sendo monitorado é encerrado. Porque o -o opção for usada, o ADPlus coloca toda saída na pasta C:\Temp. Se a pasta não existir, o ADPlus a criará.

O ADPlus-crash - iis -o \ \servidor\compartilhar
Esse comando é o mesmo que o comando anterior, exceto que ele registra toda saída para um servidor de rede. O ADPlus cria uma nova subpasta na pasta \ \servidor\compartilhare nomeia a subpasta para o computador local. Portanto, se você estiver executando o ADPlus em um web farm, cada servidor na farm com o ADPlus executando efetua uma pasta própria exclusiva sob \ \servidor\compartilhar. (Você precisa criar pastas exclusivas para cada servidor. O ADPlus faz isso automaticamente.)
Observação Se você estiver executando o ADPlus no modo de falha do console local (em vez de um shell de comando remoto conforme descrito na próxima seção), você deverá continuar conectado ao console para a duração da sessão de depuração.

Por exemplo, suponha que você inicie o ADPlus no modo de falha e você usar o -iis switch para monitorar o IIS. Quando você efetuar logout do console, encerre as cópias do CDB. exe em execução no console (e todos os outros aplicativos em execução). Como resultado, a depuração pára e o processo que está sendo monitorado é encerrado.

Para evitar esse problema, você pode bloquear a sessão de console (pressione combinação de teclas CTRL + ALT + DEL e clique em Bloquear computador) ou executar o ADPlus a partir do shell do comando remoto programado para ser executado de forma não interativa (ou seja, ele não requer um logon interativo).

Para obter mais informações sobre como programar um shell de comando remoto para executar no modo não interativo, consulte a seção "Típica ADPlus uso cenários: executar em Crash modo remotamente".

Aplicativo do servidor MTS ou COM+ fecha inesperadamente

Componentes de modelo de objeto componente (COM) personalizados que são executados em um aplicativo do servidor MTS ou COM+ na verdade executam em um processo substituto (Mtx ou Dllhost. exe). Esses processos substitutos têm propriedades e configurações que podem ser configuradas por meio do MTS Explorer (para Windows NT 4.0) ou o snap-in do Component Services Microsoft Management Console (MMC) (para Windows 2000, Windows XP e Windows Server 2003).

Por padrão, os aplicativos do servidor MTS ou COM++ são configurados para fechar após três minutos de tempo ocioso. Para certificar-se de que esses processos continuam em execução enquanto o depurador é anexado e monitoramento de exceções, você deve configurá-los para Permanecer executando quando inativo.

Além disso, o MTS e COM+ implementam um failfast. Um failfast é uma proteção designada para falhar (ou encerrar) MTS / COM+ processos que geram unhandled violações de acesso.

Por padrão, o failfast está habilitado nos aplicativos do MTS ou COM++ que geram exceções de violação de acesso não tratada. Como resultado, uma falha MTS / COM+ aplicativo de servidor não pode elevar uma exceção de violação de acesso de segunda instância (ou seja, ele fecha após a violação de acesso de primeira chance). Por padrão, o ADPlus está configurado para produzir apenas um registro de despejo de memória mini quando ocorrem exceções de primeira instância.

Para depurar com sucesso o MTS / com++ etapas, de aplicativos COM+ para servidor:
  1. Configurar o MTS / COM+ aplicativo de servidor Permanecer executando quando inativo.
  2. Use o FullOnFirst Alterne para criar arquivos de despejo total nas exceções de primeira chance.
  3. Executar o ADPlus no modo de falha e espere o aplicativo falhar.
Observação Como o MTS e COM+ desligar um aplicativo de servidor, e a diretiva de failfast impede que o processo de disparar uma exceção de segunda instância, apenas talvez você possa obter um primeiro chance acesso violação memória arquivo de despejo.

Executar remotamente no modo de falha

Há muitas ocasiões em que você deve iniciar o ADPlus no modo de falha de um computador cliente local para monitorar um processo que fecha inesperadamente em um ou mais servidores remotos em um farm de servidores. Normalmente, no Windows 2000, você faz isso por meio de serviços de Terminal do Windows. No entanto, você não pode depurar aplicativos que são executados em diferentes estações de trabalho no Windows NT 4.0 e Windows 2000. Portanto, o ADPlus desativa crash funcionalidade de modo quando detectar que ele seja executado em uma sessão de serviços de Terminal. Para resolver esse problema, compartilhe o servidor remoto usando o utilitário Remote. exe, crie um arquivo em lotes que inicia um shell de comando no servidor remoto e depois agendar esse arquivo em lotes para executar no servidor de destino usando o AT comando. (O AT comando faz com que o shell de comando executar no modo não interativo, similar a um serviço.) O shell de comando remoto é conectado a uma estação de trabalho local ou um computador cliente que usa o mesmo utilitário Remote. exe que você usou para iniciar o shell de comando.

Para iniciar um shell de comando remoto em um servidor usando o AT comando, execute estas etapas:
  • No servidor remoto
    Suponha que os depuradores estejam instalados em c:\Debuggers.. Siga estas etapas:
    1. Na pasta c:\Debuggers., crie um novo arquivo em lotes chamado Remoteshell.
    2. Adicione a seguinte linha para esse arquivo em lotes:
      c:\debuggers\remote.exe /s "cmd. exe" remoteshell
    3. No console no servidor ou em uma sessão de serviços de Terminal, abra um novo shell de comando e, em seguida, digite o seguinte comando:
      EM 15: 00 c:\debuggers\remoteshell.cmd
      onde 15: 00 é posterior à hora atual de um minuto. Por exemplo, se a hora atual for 14: 59, digite 15: 00.
    4. Aguarde até que o AT comando a ser executado.
    5. No prompt de comando, digite AT sem parâmetros para verificar se a tarefa foi executada sem erros.
  • No cliente local:
    Instale os depuradores no computador cliente local ou (no mínimo) copie o utilitário Remote. exe localmente. (Por padrão, o utilitário é instalado com os depuradores na pasta de instalação raiz).

    Suponha que os depuradores e o utilitário Remote. exe são instalados em c:\Debuggers.. Siga estas etapas:
    1. Em um prompt de comando, alterne para a pasta c:\Debuggers..
    2. Digite o seguinte comando:
      Remote. exe /c servidor remoto remoteshell
      onde servidor remoto é o nome do servidor remoto.
    3. O shell de comando local agora está conectado ao shell do comando remoto que está executando no servidor e todos os comandos digitados localmente serão executados no servidor remoto (o DIR c:\ comando lista o conteúdo da unidade c no servidor remoto).
    4. No shell do comando remoto, você pode agora executar o ADPlus no modo de falha como se estivesse executando localmente no console. No entanto, você deve usar o -quiet Alterne para suprimir todas as caixas de diálogo que o ADPlus gera por padrão. Se você não usar o -quiet switch, o shell de comando remoto irá parar de responder depois de executar o ADPlus e não retornará um prompt. Se esse problema ocorre, você deve encerrar o shell do comando remoto (cmd. exe) no servidor e, em seguida, inicie uma nova instância.
    5. Para enviar uma quebra de depuração (CTRL + C) para um processo que o ADPlus está atualmente depurando remotamente por meio do modo de falha, você deve usar o utilitário Breakin. exe. Por padrão, o Breakin. exe é instalado com os depuradores na raiz da pasta dos depuradores. Por exemplo, para parar a depuração de IIS (Inetinfo. exe) que está sendo executado com uma identificação de processo de 1975, digite o seguinte comando no shell do comando remoto:
      Breakin. exe 1975
      Como alternativa, você pode usar o comando kill. exe (localizado na pasta raiz dos depuradores) para encerrar quaisquer processos que estão sendo depurados.

Informações adicionais e problemas conhecidos

  • Como você pode determinar se o ADPlus capturou informações sobre uma falha ou se um processo que está sendo monitorado no modo de falha fechou?

    Há várias maneiras de determinar isso:
    • Use o -Notificar Alterne e verifique se o serviço Mensageiro é iniciado no servidor que está sendo depurado e no computador cliente que receberá as notificações.
    • Em um editor de texto, abra o arquivo. log que aparece na pasta de saída para cada processo e role até o final do arquivo. Localize o seguinte texto:
           0:070> * -------- AutodumpPlus 4.01 finished running at: --------
           0:070> .time
           Debug session time: Mon Aug 06 15:25:15 2001
           System Uptime: 3 days 17:00:34 
           Process Uptime: 1 days 3:10:38 
           0:070> * -------------------------------------------------------
    • Na pasta de saída, localize quaisquer arquivos. dmp que contenham a frase "_ _ 2nd_chance". Se essa frase aparecer no rótulo de um registro de despejo de memória, um processo fechou inesperadamente.
    • Na pasta de saída, localize quaisquer arquivos. dmp que contenham a frase "_ _ Process_was_shutdown". Se essa frase aparecer no rótulo de um registro de despejo de memória, um administrador encerrou o processo ou, se for um MTS / COM+ aplicativo, o processo parou porque atingiu o limite de ociosidade.
    • Na pasta de saída, localize quaisquer arquivos. dmp que contenham a frase "_ _ CTRL-C". Se essa frase aparecer no rótulo de um registro de despejo de memória, tanto uma exceção de quebra de depuração foi gerada de uma DLL que estava em execução no processo ou alguém pressionou CTRL + C do console (ou usou Breakin. exe se o ADPlus está executando remotamente) para interromper a sessão de depuração atual.
  • Você deve instalar os componentes do Windows Scripting Host para o ADPlus para executar o sistema. Para baixar o Windows Scripting Host, visite o seguinte site da Microsoft:
    http://msdn2.microsoft.com/en-us/library/ms950396.aspx
    Observação Componentes do Windows Scripting Host já podem estar instalados se você tiver qualquer um dos seguintes produtos Microsoft instalados:
    • Microsoft Internet Explorer 5
    • Microsoft Office 2000
    • Microsoft Visual InterDev 6.0
    • Microsoft Visual Studio 6.0
    • Microsoft Windows NT Option Pack
    • Microsoft Windows 2000
    • Microsoft Windows XP
    • Microsoft Windows Server 2003
    • Microsoft Windows Vista
  • O -iis Alternar funciona somente se Internet Information Server (IIS) 4.0 ou Internet Information Services (IIS) 5.0.x está instalado.
  • Quando você executa o ADPlus no modo silencioso, a ferramenta registra informações no log de eventos.
  • Se você usar o -o switch, o caminho especificado não deve conter mais de uma pasta inexistente. Por exemplo:
    1. Você especificar -o c:\temp1\temp2. No entanto, as pastas C:\Temp1 e \Temp2 não existem.
    2. Você recebe uma mensagem de erro do ADPlus que afirma que as pastas não existirem, e o ADPlus não as criará.
    Se você especificar somente -o c:\temp1O ADPlus criará a pasta C:\Temp1 se não existir e coloca todos os arquivos de saída nessa pasta. Se você deseja especificar várias subpastas e você usar o -o switch, verifique se todas as subpastas existem antes de executar o ADPlus.
  • COM+, você pode configurar um pacote de servidor para iniciar no depurador na Avançado Guia de Propriedades caixa de diálogo do pacote. Se você habilitar o Iniciar no depurador opção, o ADPlus não é possível anexar o depurador CDB a um processo. Por padrão, somente um depurador pode ser anexado a um processo por vez.
  • Quando uma chamada de procedimento remoto (RPC) é feita a partir de um processo que está analisando o ADPlus no modo de falha para outro processo que parou (intencional ou inesperadamente), o arquivo de log que o ADPlus gera para o processo que está analisando pode conter um ou mais das seguintes exceções:
    Exceção desconhecida - código 80010105 (primeira instância)
    Exceção desconhecida - código 800706be (primeira instância)
    Exceção desconhecida - código 800706ba (primeira instância)
    Essas exceções são típicas. RPC gera essas exceções quando uma chamada é feita a partir de um processo que está sendo monitorado para um processo inexistente ou que falhou.

    Além disso, se o ADPlus estiver monitorando Inetinfo. exe no log de depuração do ADPlus para esse processo, a seguinte exceção poderá aparecer no log:
    Exceção desconhecida - código 800706bf (primeira instância)
    Essa exceção tipicamente aparece depois que o IIS faz uma chamada para um site fora do processo (alto isolamento) que falhou. Ele pode ser seguido por duas instâncias da seguinte exceção:
    Exceção desconhecida - código 800706ba (primeira instância)

Referências

Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
323478Você não pode depurar através de uma sessão do Terminal Server

Propriedades

Artigo: 286350 - Última revisão: 30 de agosto de 2011 - Revisão: 1.0
A informação contida neste artigo aplica-se a:
  • Microsoft Internet Information Services 6.0
  • Serviços de informação Internet 5.0 da Microsoft
  • Microsoft Internet Information Server 3.0
  • Microsoft Windows 2000 Standard Edition
  • Microsoft Windows XP Service Pack 2
  • Microsoft Windows Server 2003 Enterprise Edition
  • Windows Vista Enterprise
  • Windows Server 2008 Datacenter
  • Windows Server 2008 Enterprise
  • Windows Server 2008 Standard
Palavras-chave: 
kbbug kbdebug kbhowto kbmt KB286350 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: 286350

Submeter comentários

 

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