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

  • 相关阅读:
    第五,六章
    第三,四章
    第一,二章
    20131019作业 2 分支、循环结构
    20131016课堂实验4
    20131014课堂实验3
    20131007国庆作业例7-11,7-12,7-13,7-14
    20131006国庆作业例7-7,7-8,7-9
    20131006国庆作业例7-4,7-5,7-6
    20131006国庆作业第七章例7-1,7-2,7-3
  • 原文地址:https://www.cnblogs.com/yifi/p/6610322.html
Copyright © 2011-2022 走看看