Episódio

Exceção recolhida C000027B

Uma exceção estivada é um tipo de exceção feita por aplicativos UWP. Ele foi introduzido no Windows 8.0 como parte da API do WinRT (agora conhecida como UWP).

O Código de exceção é 0xC000027B.

O primeiro parâmetro de exceção (0) é o endereço inicial de uma matriz de ponteiros para estruturas que começam com uma estrutura STOWED_EXCEPTION_INFORMATION_HEADER . Desde o Windows 8.1, STOWED_EXCEPTION_INFORMATION_V2 tem sido a versão em uso.

O segundo parâmetro de exceção (1) é o número de ponteiros na matriz.

A exceção oculta foi substituída/aprimorada pela exceção de ponto de falha (0xC000027C). Como exceções POF, o código de exceção é gerado pelo WinRT Framework. Ele não requer que os aplicativos sejam recompilados para que possam ser usados.

Uma exceção estivada é gerada quando uma operação assíncrona falha. Quando a exceção é relatada do thread de trabalho por meio de uma chamada RoOriginateException ou RoOriginateLanguageException, um Stack Backtrace (matriz de ponteiros de instrução) é coletado do thread atual por meio de uma chamada de função CaptureStackBackTrace. O Stack Backtrace e HRESULT da exceção é encapsulado em um objeto IRestrictedErrorInfo e roteado através das camadas de projeção de linguagem do WinRT para o chamador.

Se a exceção não for manipulada pelo chamador, a exceção armazenada será lançada fatalmente. Como o lançamento é adiado, o contexto atual do dump associado tem pouco valor. O thread do problema original regularmente não existe mais e, se existir, concluiu a operação (o que significa que a memória de pilha do thread foi substituída). Isso significa que os parâmetros de função e as variáveis locais não estão disponíveis.

Siga estas etapas ao depurar esses problemas com as Ferramentas de Depuração para Windows:

  1. .exr -1
    • Visualize o código, o endereço da matriz de exceção estivada e a contagem por meio dos parâmetros
  2. !pde.dse
    • Lista as exceções estivadas
    • Cada HRESULT é descrito (mesma saída que !pde.err)
    • Cada Backtrace é exibido como uma pilha de chamadas
    • Cada exceção aninhada (opcionalmente) é exibida (por exemplo, !sos.pe saída de uma exceção CLR)

Recursos adicionais: