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

  • 相关阅读:
    Hive学习笔记记录
    Hadoop学习笔记记录
    python学习笔记记录
    2018高级软件工程——助教总结
    Week3 第二次结对编程
    Week2 第一次结对编程
    Week1 博客作业
    最后一周总结
    阅读和提问3
    个人项目 案例分析
  • 原文地址:https://www.cnblogs.com/yifi/p/6610322.html
Copyright © 2011-2022 走看看