Pergunta

Ao responder este pergunta notei que eu tenho o seguinte diálogo enquanto atempting para mover o "cursor", enquanto uma exceção estava sendo tratado:

Não é possível definir a próxima instrução a este local. A tentativa de desanuviar a pilha de chamadas falhou.

Unwinding não é possível nos seguintes cenários:

  1. A depuração foi iniciada através de Just-In-Time depuração.
  2. Um descontrair está em andamento
  3. A System.StackOverflowException ou exceção System.Threading.ThreadAbortException foi lançada.

O que exatamente é um descontrair ?

Foi útil?

Solução

É mim!

Não, neste contexto, normalmente se refere ao processo de pisar ( "para trás" / "para cima") através de uma pilha, removendo quadros sucessivos até que você voltou para o nível desejado. pilhas típicos são (é claro) muito linear em sua estrutura, os quadros são empilhados end-to-end após o outro, então não há realmente muito literal descontrair acontecendo, mas isso é o que é chamado.

Esta página Wikipedia tem mais detalhes.

Outras dicas

desenrolamento é apenas o backup a pilha em movimento.

Este onde o CLR é 'descontrair' a pilha a fim de localizar um método com um catch bloco que pode lidar com a ie exceção se o método atual não trata a exceção que, em seguida, retorna para o método que o chamou para ver se ele vai. Isto é repetido até localizar um método para lidar com a manipulação de erro nível de aplicação de exceção ou hits.

Isso significa que há um fio defeituoso ou, provavelmente, que é porque a pilha está cheia e não quadro de pilha é criado, o CLR como opta para relaxar o contexto atual nesta situação.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top