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:
- .exr -1
- Visualize o código, o endereço da matriz de exceção estivada e a contagem por meio dos parâmetros
- !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:
- Interior - Exceção de ponto de falha
- Interior - .exr
- Por dentro - SDK do Windows
- Ferramentas de desfragmentação - Extensão do depurador PDE (via link do OneDrive)
- Ferramentas de desfragmentação - #136 - Depurando despejos de memória do modo de usuário Parte 2
- Ferramentas de desfragmentação - #167 - Depurando o modo de usuário Crash Dumps Redux
- Documentação da Microsoft - Ferramentas de depuração para Windows
- NTDebugging Blog - Parte 1 + Parte 2
- MSDN - RoOriginateException
- MSDN - RoOriginateLanguageException
- MSDN - interface IRestrictedErrorInfo
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:
- .exr -1
- Visualize o código, o endereço da matriz de exceção estivada e a contagem por meio dos parâmetros
- !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:
- Interior - Exceção de ponto de falha
- Interior - .exr
- Por dentro - SDK do Windows
- Ferramentas de desfragmentação - Extensão do depurador PDE (via link do OneDrive)
- Ferramentas de desfragmentação - #136 - Depurando despejos de memória do modo de usuário Parte 2
- Ferramentas de desfragmentação - #167 - Depurando o modo de usuário Crash Dumps Redux
- Documentação da Microsoft - Ferramentas de depuração para Windows
- NTDebugging Blog - Parte 1 + Parte 2
- MSDN - RoOriginateException
- MSDN - RoOriginateLanguageException
- MSDN - interface IRestrictedErrorInfo
Tem comentários? Envie um problema aqui.