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


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 ^^


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.


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.


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?


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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.