2012-01-30 12 views
8

En general, no puedo encontrar una lista del significado de los valores que pueden contener los diferentes campos en la salida de WinDbg del comando !analyze -v.¿Qué significa PRIMARY_PROBLEM_CLASS STACKIMMUNE de WinDbg?

La búsqueda es difícil debido a que la salida del comando a menudo se publica sin los valores de campo (como el de DEFAULT_BUCKET_ID y PRIMARY_PROBLEM_CLASS) explícitamente dirigidos. ¿Hay una lista de referencias?

Para ser más específicos: Durante el análisis de un volcado de memoria, la salida del comando !analyze -v indicó que tanto DEFAULT_BUCKET_ID como PRIMARY_PROBLEM_CLASS son "STACKIMMUNE". ¿Qué significa esto?

Respuesta

7

Primero una pequeña introducción a cómo funciona !analyze.

Cuando !analyze trata de determinar la razón de un access violation (y algunos otros tipos de excepciones, por ejemplo, SEH exceptions, excepciones de C++, desbordamiento de entero, la división por cero, etc.), que mira a la pila de llamadas de la rosca que arrojó la excepción y se da cuenta de lo que está en la parte superior del hilo. Sin embargo, no todos los marcos de pila son útiles.

Por ejemplo, para las excepciones de C++, verá kernel32!RaiseException y your_module!__except_handler3 en la parte superior de la pila. Esos marcos deben omitirse, porque es muy poco probable que sean la causa del problema. A veces, !analyze tiene que omitir muchos marcos para llegar al marco interesante. Basta con mirar un example on other Stack Overflow question, donde el código ofensivo es ~ 40 cuadros por debajo.

Para responder a su pregunta: STACKIMMUNE es una indicación de que todos los marcos en la pila de llamadas se saltan. Esto podría suceder cuando la pila está dañada o cuando tiene símbolos incorrectos y usa !reload /i para ignorar cualquier error de desajuste, y probablemente en muchos otros casos.

+0

Gracias. Eso está bastante claro, pero ¿hay alguna lista de todos los posibles valores PRIMARY_PROBLEM_CLASS y su significado? –

+0

Lo siento, no conozco ninguna descripción exhaustiva de lo que! Analizar produciría, solo una pequeña parte de información. –