异常发生时如果调试器存在如果让执行自己的异常处理函数
一个异常触发的时候,如果调试器存在,那么它就会中断在调试器中,如果没有调试器的存在,那么它就会执行自己的异常处理函数,如果用SetUnhandledExceptionFilter设置了异常的回调函数,并且异常没有被处理的时候那它就会调用这个回调函数。这是我这几天概括的一个简略的理解,当然还有更深层次的,也看了 只是不想再说太多,只针对我这个问题。
我用__try __ __except (EXCEPTION_EXECUTE_HANDLER) 先写一个异常处理 然后再try中使用 int 2dh抛出一个异常,这时候如果有调试器的存在,那么它就会中断在调试器中,不会执行我写的异常处理。
看了很多帖子,大多只说我上面说的 而不会详细的介绍为什么调试器存在的时候就会中断在调试器,而不会执行异常处理函数,这个到底是在什么地方判断的,我看了一下会不会是 KiDebugRoutine 里面的函数不同而导致执行的流程变化,这是第一个问题。
第二个问题是,如果这样的话,我想在调试器打开的时候,还让它执行自己的处理函数该应该怎么办
第一次发帖,新手一个,说的地方有很多问题,还望见谅,请大牛指点一二。