Why SetUnhandledExceptionFilter cannot capture some exception but AddVectoredExceptionHandler can do

后端 未结 2 1681
夕颜
夕颜 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:32

    It happens because of this code in MSVC CRT startup:

        /*
         * Enable app termination when heap corruption is detected on
         * Windows Vista and above. This is a no-op on down-level OS's
         * and enabled by default for 64-bit processes.
         */
    
        if (!_NoHeapEnableTerminationOnCorruption)
        {
            HeapSetInformation(NULL, HeapEnableTerminationOnCorruption, NULL, 0);
        }
    

    If you want to disable it (not recommended), link nohetoc.obj to your program.

提交回复
热议问题