Re: 在exception handling中是哪里转去执行except块的?
Windows内核调试
在exception handling中是哪里转去执行except块的?
Thomson
2009-08-05, 10:32 上午
在windows的__try/__except异常处理中,如果在__try里面发生exception,然后,在_except的filter又返回了EXCEPTION_EXECUTE_HANDLER,那么是在哪里转到__except对应的代码里面去执行的呢? 是在unwind的过程中吗?
Re: 在exception handling中是哪里转去执行except块的?
手语
2009-08-15, 01:27 上午
根据记忆,过程是这样的:
1. 执行filter, 返回EXCEPTION_EXECUTE_HANDLER
2. UNWIND过程,依次调用前面所有的Handler执行堆栈清理
3. 执行__except对应的异常代码
这是标准exception handler的连续的三步。
不一定精确,很久没复习了,最近都在写代码很少调试异常问题。
《软件调试》和Matt Patric那片老文都有精确描述。
鸿鹄安知燕雀之志