Proceso bloqueado en Windows: ¿Hay alguna forma de ver por qué?

11

Traté de imprimir un documento en Word, y la palabra se congeló. ¿Hay alguna forma de ver qué recurso está esperando?

Estoy usando Windows XP y Word 2007 (aunque imagino que la respuesta no depende del proceso que se congeló)

Nathan Fellman
fuente
1
Nathan, creo que publicaste dos veces , superuser.com/questions/10085 .
James McMahon
¡Yo hice! ¡Que embarazoso!
Nathan Fellman

Respuestas:

13

Esto requiere un poco de conocimiento técnico, pero es posible analizar bloqueos con el depurador de Windows (gratuito) WinDbg . Requiere un poco de trabajo instalarlo, adjuntarlo al proceso y configurar los símbolos (¡muy importante!), Pero luego puede encontrar la causa del bloqueo con un solo comando WinDbg (énfasis mío):

analizar -v -hang

Este es el que no había encontrado antes. Ejecute esto después de abrir un volcado de un proceso bloqueado, y determinará qué subproceso fue responsable del bloqueo y qué estaba esperando. Sabía que windbg podía permitirte examinar las manijas, mostrar todos los bloqueos abiertos en cada hilo y permitirte examinarlos en detalle. Pero no me di cuenta de que con! Analyse, windbg puede hacer el trabajo duro por mí: examinando los bloqueos abiertos por todos los hilos, determinando qué hilos están esperando a qué otros, y elaborando una orden para resolver cuál fue inicialmente responsable de el colgar

fuente

También la depuración avanzada de Windows de Mario Hewardt, Daniel Pravat es un libro muy bueno para comenzar con WinDbg: los primeros capítulos ofrecen una descripción muy detallada de los depuradores y cómo usar WinDbg específicamente. El resto del libro está lleno de estudios de casos de depuración detallados, que no tiene que leer. Sin embargo, creo que hay un estudio de caso que describe cómo depurar un bloqueo que será de su interés.

Después de encontrar la causa del bloqueo, incluso puede desengancharlo con técnicas de depuración más avanzadas ^^

Leftium
fuente
El estudio de caso mencionado se puede encontrar en el capítulo 14 del libro, sección "! Analizar el comando de extensión". Contiene información muy detallada y útil sobre cómo interpretar la salida de WinDbg.
Claudiu
12

Es posible que desee buscar en el Explorador de procesos . Puede ver qué procesos de archivos / carpetas tienen un bloqueo activado.

James McMahon
fuente
Y si hace doble clic en un proceso, incluso puede ver hilos individuales y su uso de CPU.
itsadok
1
Buena sugerencia, pero tenga en cuenta que esto le dirá qué objetos tiene abierto el proceso, no qué está esperando.
Graeme Perrow el
0

Que yo sepa, no lo hay. Podría conectar algo como Wireshark para ver si puede encontrar algo en el tráfico de la red que indique lo que está esperando, pero es demasiado exagerado y es poco probable que encuentre algo.

Stefan Thyberg
fuente
0

Dado que estaba intentando imprimir, me pregunto si se invocó la búsqueda de red de Windows y Word solo estaba esperando que todas las impresoras de red estuvieran asignadas para una selección.
¿Tiene una impresora conectada localmente? y, ¿estás en un dominio de red empresarial con impresoras compartidas?

nik
fuente
0

Mire los videos del explorador de procesos " El caso del 200x" en el que el autor muestra el diagnóstico de varios escenarios de solución de problemas, incluidos los bloqueos. Aquí también es donde el bloqueo forzado ctrl-scrolllock-scrolllock puede ayudar con el diagnóstico.

kpierce8
fuente