O que exatamente é "definido por aplicativos" no Filter Filter?
-
26-09-2019 - |
Pergunta
MSDN descreve UnhandledExceptionFilter
do seguinte modo: "Uma função definida pelo aplicativo que passa exceções não tratadas ao depurador, se o processo estiver sendo depurado".
Mas essa função é claramente fornecida pelo sistema operacional, no kernel32.dll de acordo com a mesma página.
Então, por que eles chamam isso uma função definida pelo aplicativo?
Solução
Sim, linguagem muito estranha. É um protótipo Definição de uma função. Que você pode usar com a palavra -chave __Except ou como argumento para setUnHandledExceptionFilter (). Ou tornaria o seu uma 'função definida pelo aplicativo'.
Há um manuseio padrão, se você não o fizer, o depurador para automaticamente em uma exceção não atendida. O que eu suponho é o que eles queriam dizer com "isso passa exceções ao depurador". Os documentos do SDK para SEH merecem uma nota falhada geral.
Outras dicas
O próprio UnhleDExceptionFilter () não é uma função própria fornecida pelo kernel (embora o kernel implemente sua própria implementação padrão que é usada até você substituí -lo por conta própria). A documentação do UNHandLedExceptionFilter () que você cita descreve um protótipo de função que você deve seguir se optar por implementar sua própria função e passá -la para a função setUnHandLedExceptionFilter () para ativá -la dentro do kernel.