WinDbg muestra diferentes pilas de llamadas cuando se monta en proceso cuando se compara a chocar volcado

StackOverflow https://stackoverflow.com/questions/1666137

Pregunta

estoy analizando un callejón sin salida que está ocurriendo cuando se utiliza una biblioteca nativa junto código administrado. Estoy usando WinDbg para depurar el problema con la intención de salvar a un vertedero de tal manera que el vendedor podría observar el tema en sus locales.

Para colocarlo en el proceso problemática veo el siguiente mensaje antes de que las pilas de llamadas:

  

ADVERTENCIA: Pila relajarse información no disponible. Después de fotogramas puede estar equivocado.

Los marcos de hecho parecen correctos cuando se conecta directamente al proceso. Sin embargo, cuando tomo un vertedero de este archivo y luego abrir el vertedero en WinDbg en otra máquina, uno de los marcos de pila es diferente (el error anterior se muestra también.) Esto tenía originalmente el vendedor perplejo, como la ruta de código parecía imposible .

Tomé el vertedero usando:

.dump /ma filename.dmp

Lo que haría que esta discrepancia, y ¿hay algo que pueda hacer para analizar de forma fiable las pilas de llamadas de un archivo de volcado? ¿Puede haber cualquier otra información tergiversada que debería tener en cuenta?

¿Fue útil?

Solución

Esto suena como que podría tener PDBs que no coinciden. ¿Ha probado los comandos !chksym y !itoldyouso? por ejemplo, ver la Bugslayer artículo

Otra cosa a intentar es !sym noisy que deberían indicar qué archivos PDB se están cargando.

Ver también MSDN blog de

Otros consejos

La advertencia le está diciendo que el depurador no se puede asociar una o más direcciones en la pila con la información del módulo existente. Como el código administrado se compila sobre la marcha por el CLR no hay módulos correspondientes para el código y por lo tanto la advertencia.

El comando SOS! Clrstack tiene la información necesaria desde el CLR para mostrar una pila significativa (o al menos sin el aviso). Si utiliza cualquiera de los comandos nativos volcado de pila, verá esta advertencia de código administrado.

El próximo libro avanzada .NET depuración tiene detalles adicionales. Ver http://advanceddotnetdebugging.com/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top