Processo travado no Windows: existe alguma maneira de entender por quê?


Respostas:


13

Isso requer um pouco de conhecimento técnico, mas é possível analisar travamentos com o depurador do Windows (gratuito) WinDbg . Requer algum trabalho para instalar, anexar ao processo e configurar os símbolos (muito importante!), Mas você pode encontrar a causa do travamento com um único comando WinDbg (ênfase minha):

analisar -v -hang

Este é o que eu nunca tinha encontrado antes. Execute isso após abrir um despejo de um processo interrompido e ele determinará qual thread foi responsável pelo travamento e o que estava aguardando. Eu sabia que o windbg poderia permitir que você examinasse alças, mostrasse todos os bloqueios abertos em cada thread e permitisse que você os examinasse em detalhes. Mas eu não percebi que, com o! Analyse, o windbg pode fazer o trabalho duro para mim - examinando bloqueios mantidos abertos por todos os threads, determinando quais threads estão esperando por outros e criando uma ordem de trabalho que foi inicialmente responsável por o jeito.

fonte

Também avançado no Windows Debugging por Mario Hewardt, Daniel Pravat é um livro muito bom para você começar a usar o WinDbg: Os primeiros capítulos fornecem uma visão geral muito detalhada dos depuradores e como usar o WinDbg especificamente. O restante do livro é preenchido com estudos de caso de depuração detalhados, que você não precisa ler. Acho que há um estudo de caso descrevendo como depurar um travamento que será do seu interesse.

Depois de encontrar a causa do travamento, você pode até conseguir alterá-lo com técnicas de depuração mais avançadas ^^


O estudo de caso referido pode ser encontrado no capítulo 14 do livro, seção "! Analisar comando de extensão". Ele contém informações muito detalhadas e úteis sobre como interpretar a saída do WinDbg.
precisa

12

Você pode querer procurar no Process Explorer . Você pode ver quais processos de arquivos / pastas estão bloqueados.


E se você clicar duas vezes em um processo, poderá ver segmentos individuais e o uso da CPU.
itsadok 21/07/2009

1
Boa sugestão, mas observe que isso lhe dirá quais objetos o processo abriu, não o que está esperando.
Graeme Perrow

0

Tanto quanto eu sei, não há. Você pode conectar algo como o Wireshark para ver se pode encontrar algo no tráfego da rede para indicar o que está esperando, mas é um exagero e dificilmente você encontrará alguma coisa.


0

Desde a impressão que você estava tentando, pergunto-me se a pesquisa de rede do Windows foi invocada e o Word estava apenas esperando por todas as impressoras de rede sendo mapeadas para uma seleção.
Você possui uma impressora conectada localmente? e você está em um domínio de rede corporativa com impressoras compartilhadas?


0

Assista aos vídeos do explorador de processos " O caso do 200x", no qual o autor mostra o diagnóstico de vários cenários de solução de problemas, incluindo travamentos. Também é aqui que a falha forçada ctrl-scrolllock-scrolllock pode ajudar no diagnóstico.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.