Why SetUnhandledExceptionFilter cannot capture some exception but AddVectoredExceptionHandler can do

后端 未结 2 1683
夕颜
夕颜 2020-12-13 09:54

I have experienced a problem that the function I passed to the SetUnhandledExceptionFilter didn\'t get called when the exception code c0000374 raising. But it works fine wit

2条回答
  •  囚心锁ツ
    2020-12-13 10:29

    The exception is actually caught directly at its source, in RtlReportCriticalFailure, called by the heap manager once heap corruption is detected. The SEH handler registered in this function calls RtlReportException, quickly followed by NtTerminateProcess.

    I can only conclude that SEH handlers are avoided on purpose -- with the heap corrupted, the stack contents (and therefore SEH registrations) are suspect too; and the application can't reasonably recover from heap corruption anyway.

提交回复
热议问题