Pregunta

Me estoy poniendo bloqueos aleatorios de mi aplicación de C # (Windows 7 / VS2008), y no me da un seguimiento de pila de costumbre, sino que más bien sugiere que cerrar / debug / encontrar ventanas de información 7 tipo de cuadro de diálogo. Estoy corriendo la aplicación ya sea de bajo VS2008 o de forma independiente - lo mismo. Al hacer clic en "Depuración" sugiere depurar con una nueva instancia de la VS, que falla como "otro depurador ya está unido a la aplicación". Sin embargo, el depurador asociado no me da ninguna oportunidad de ver donde falla, simplemente da algunas pistas en la ventana de salida (abajo). ¿Cómo lidiar con esto?

Parece que tengo que activar (?) Excepciones de primera oportunidad en el depurador de VS, pero no estaba claro cómo .. Agradezco cualquier ayuda con esto!

Suma - he encontrado cómo habilitar la depuración de las excepciones en VS2008 (Depuración> Excepciones-> comprobado todas las 5 categorías de excepciones). Y todavía me da exactamente el mismo resultado - accidente y sin capacidad de ver lo que está pasando en el depurador

.
  

'Ps.exe' (administrado): Cargado   'C: \ Windows \ assembly \ GAC_MSIL \ System.Deployment \ 2.0.0.0__b03f5f7f11d50a3a \ System.Deployment.dll'   Una primera excepción del tipo   'System.Deployment.Application.InvalidDeploymentException'   ocurrido en System.Deployment.dll A   primera excepción del tipo   'System.Threading.ThreadAbortException'   en mscorlib.dll El hilo   0x1964 ha salido con código 0 (0x0).   El hilo 0x1b24 ha salido con código   0 (0x0). Una primera oportunidad de   tipo   'System.ArgumentOutOfRangeException'   ocurrió en un mscorlib.dll primera   excepción del tipo   'System.ArgumentOutOfRangeException'   ocurrió en un mscorlib.dll primera   excepción del tipo   'System.ArgumentOutOfRangeException'   ocurrió en un mscorlib.dll primera   excepción del tipo   'System.ArgumentOutOfRangeException'   ocurrió en un mscorlib.dll primera   excepción del tipo   'System.ArgumentOutOfRangeException'   ocurrió en un mscorlib.dll primera   excepción del tipo   'System.ArgumentOutOfRangeException'   ocurrió en un mscorlib.dll primera   excepción del tipo   'System.ArgumentOutOfRangeException'   ocurrió en un mscorlib.dll primera   excepción del tipo   'System.ArgumentOutOfRangeException'   ocurrió en un mscorlib.dll primera   excepción del tipo   'System.ArgumentOutOfRangeException'   ocurrió en un mscorlib.dll primera   excepción del tipo   'System.ArgumentOutOfRangeException'   ocurrió en un mscorlib.dll primera   excepción del tipo   'System.Threading.ThreadAbortException'   en mscorlib.dll El hilo   0x19b8 ha salido con código 0 (0x0).   El hilo 0x18f4 ha salido con código   0 (0x0). El 0x420 hilo ha salido   con código 0 (0x0). Una primera oportunidad   excepción de tipo   'System.ArgumentOutOfRangeException'   ocurrió en un mscorlib.dll primera   excepción del tipo   'System.ArgumentOutOfRangeException'   ocurrió en un mscorlib.dll primera   excepción del tipo   'System.ArgumentOutOfRangeException'   ocurrió en un mscorlib.dll primera   excepción del tipo   'System.ArgumentOutOfRangeException'   ocurrió en un mscorlib.dll primera   excepción del tipo   'System.ArgumentOutOfRangeException'   ocurrió en un mscorlib.dll primera   excepción del tipo   'System.ArgumentOutOfRangeException'   ocurrió en un mscorlib.dll primera   excepción del tipo   'System.ArgumentOutOfRangeException'   ocurrió en un mscorlib.dll primera   excepción del tipo   'System.ArgumentOutOfRangeException'   ocurrió en un mscorlib.dll primera   excepción del tipo   'System.ArgumentOutOfRangeException'   ocurrió en un mscorlib.dll primera   excepción del tipo   'System.ArgumentOutOfRangeException'   ocurrió en un mscorlib.dll primera   excepción del tipo   'System.ArgumentOutOfRangeException'   ocurrió en un mscorlib.dll primera   excepción del tipo   'System.ArgumentOutOfRangeException'   en mscorlib.dllUna primera   excepción del tipo   'System.ArgumentOutOfRangeException'   ocurrió en un mscorlib.dll primera   excepción del tipo   'System.ArgumentOutOfRangeException'   en mscorlib.dll El programa   '[6084] Ps.exe: Gestionado' ha salido   con código -1073740940 (0xc0000374).

¿Fue útil?

Solución

Es sorta como testigo de una de esas masivas apilamientos en una carrera de fórmula 1. La última parte de la metralla que llegó a un descanso informó:

// MessageText:
//
// A heap has been corrupted.
//
#define STATUS_HEAP_CORRUPTION           ((NTSTATUS)0xC0000374L)

Sí, eso es un reventón de neumático de muy grave. Muchas cosas van mal cuando un montón está dañado. Usted probablemente tiene algo de código no administrado que produce fallos de una manera que es tan típico de código no administrado, destruyendo la integridad de la pila con un mal indicador de escritura. Muy difícil de diagnosticar, aislar ese código.

Otros consejos

En VS, ir a la depuración / Excepciones, y activar la casilla de verificación en 'Arrojado' de 'Common Language Runtime excepciones. Esto cogerá la 'excepción de primera oportunidad'.

A excepción despliegue parece estar relacionada con hacer clic una vez. ¿Lo está utilizando?

crear un archivo de registro de salida o mensaje Utilizar cajas para seguir hacia abajo, si la herramienta de desarrollo que falla.

Pulse Ctrl + + Alt E en Visual Studio o seleccione Depurar> Excepciones en el menú y luego haga clic en Excepciones CLR para atrapar todas las excepciones de primera oportunidad. Eso debería entonces esperemos romper en el punto de la discordia.

De lo contrario, tratar Debug.Write de escritura y declaraciones Trace.Write en los puntos críticos en el código para ver qué momento se llega antes de que ocurra la falla. Tanto depuración y escritura se pueden encontrar en espacio de nombres System.Diagnostics.

OMI el mejor de corrupciones montón de depuración está utilizando WinDbg. Aquí es un blog poste de Tess sobre la depuración de daños en el montón administrado.

HTH

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