zoukankan      html  css  js  c++  java
  • VEH、VCH、SEH、UEF

    VEH:向量化异常处理程序(进程相关)
    VCH:向量化异常处理程序,总是在最后调用(进程相关)
    SEH:结构化异常处理程序,fs:[0](线程相关)
    UEF:TopLevalEH,基于SEH的

    EH全称就是ExceptionHandler,中文意为异常处理器。
    EH(异常处理程序)是做什么的呢,就是当程序发生一些错误、异常时,系统会保存好线程的CONTEXT(线程上下文)。
    再交给EH来处理异常,有时候不仅仅是错误、异常。一些调试用的中断,异常处理程序也可以处理。比如int 1、int 3。
    因为SEH的的头部被保存在TEB(fs:[0]),所以它是线程相关的。
    UEF、VEH、VCH异常处理函数定义(UEF和VEH、VCH的函数类型名不一样,但是结构是一样的):

    UEF、VEH、VCH的异常处理函数调用约定是stdcall的,windows下的系统api、回调,基本都是stdcall的。
    SEH的异常处理函数调用约定cdecl的。

    1. 第一次交给调试器(进程必须被调试)
    2. 执行VEH
    3. 执行SEH
    4. UEF (TopLevelEH 进程被调试时不会被执行)
    -->这里应该还有个VCH //对操作系统有要求 xp下没有
    5. 最后一次交给调试器(上面的异常处理都说处理不了,就再次交给调试器)
    6. 调用异常端口通知csrss.exe

  • 相关阅读:
    常见的MYSQL高可用解决方案
    CDN——到底用还是不用?
    Maven学习总结
    Git – Fast Forward 和 no fast foward
    Spring boot 打成jar包问题总结
    Spring Data JPA进阶——Specifications和Querydsl
    Arp攻击实战
    crontab命令
    mtr命令
    如何使用qperf来衡量网络带宽和延迟性能?
  • 原文地址:https://www.cnblogs.com/yifi/p/6610322.html
Copyright © 2011-2022 走看看