2010-01-05 11 views
7

Al responder a la pregunta this me di cuenta de que me dieron el siguiente cuadro de diálogo mientras atempting para mover el "cursor", mientras que una excepción estaba siendo manejado:.Net - ¿Qué es un "desenrollar"?

No se puede establecer la siguiente instrucción a esta ubicación. El intento de desenrollar la pila de llamadas falló.

desenrollar no es posible en los siguientes escenarios:

  1. depuración se inicia a través de la depuración Just-In-Time.
  2. un desconectado está en curso
  3. Un System.StackOverflowException o System.Threading.ThreadAbortException Se inició una excepción.

¿qué es exactamente un desenrollado?

Respuesta

15

¡Soy yo!

No, en este contexto, por lo general, se refiere al proceso de paso ("hacia atrás"/"hacia arriba") a través de una pila, eliminando cuadros sucesivos hasta que haya vuelto al nivel deseado. Las pilas típicas son (por supuesto) muy lineales en su estructura, los marcos se apilan uno detrás de otro, por lo que no hay realmente mucho desenrollado literal, pero así es como se llama.

This Wikipedia page tiene más detalles.

1

El desenrollado se está moviendo hacia atrás en la pila.

0

Significa que hay un hilo defectuoso o que probablemente se deba a que la pila está llena y no se ha creado ningún marco apilado, el CLR opta por DESHABILITAR el contexto actual en esta situación.

1

Esto es donde el CLR está 'desenrollando' la pila para encontrar un método con un bloque catch que pueda manejar la excepción, es decir, si el método actual no maneja la excepción, vuelve al método que lo llamó ver si lo hará. Esto se repite hasta que encuentra un método para manejar la excepción o golpea el manejo de errores a nivel de la aplicación.