深入浅出 First chance, second chance和ExceptionPort

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

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

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

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

进入windbg

0:000> g
Thu 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=0012ff48
eip=00401035 esp=0012fefc ebp=0012ff48 iopl=0         nv up ei pl nz na pe nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00010206
*** WARNING: Unable to verify checksum for UEF.exe
UEF!main+0x25:
00401035 c7050000000001000000 mov dword ptr ds:[0],1  ds:0023:00000000=????????

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值