深入浅出 First chance, second chance和ExceptionPort

    技术2022-05-20  38

    ExceptionPort的作用,是在用户态异常的第2轮分发过程中,如果第二轮还无人处理,那么就会发到ExceptionPort 。关于异常的分发,部分可以参考 理解UnhandledExceptionFilter

    对于ExceptionPort,每个普通进程都会设置,CSRSS进程负责监听。CSRSS收到异常消息后一般是立刻终止进程,Win7开始,略有变化。

    可以使用windbg做个实验,加深对上述概念的理解。来段简单的代码,

    int main(int argc, char* argv[]){ *(int*)0=1; return 0;}

    进入windbg

    0:000> gThu Feb 24 09:53:34.370 2011 (UTC + 8:00): (c7c.12c0): Access violation - code c0000005 (first chance)First chance exceptions are reported before any exception handling.This exception may be expected and handled.eax=00000027 ebx=7ffda000 ecx=00424a60 edx=00424a60 esi=00000000 edi=0012ff48eip=00401035 esp=0012fefc ebp=0012ff48 iopl=0         nv up ei pl nz na pe nccs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00010206*** WARNING: Unable to verify checksum for UEF.exeUEF!main+0x25:00401035 c7050000000001000000 mov dword ptr ds:[0],1  ds:0023:00000000=????????

    全文见 深入浅出 First chance, second chance和ExceptionPort


    最新回复(0)