【问题标题】:Vectored Exception Handling Process wide?向量化异常处理过程广泛?
【发布时间】:2015-02-16 15:27:13
【问题描述】:

我知道 Windows 会为进程中的每个正在运行的线程单独构建一个结构化异常处理链。我想知道是否使用 veh,注册的异常处理程序将被称为进程范围(无论异常发生的威胁是什么)还是也按每个线程注册?

【问题讨论】:

  • 这很容易自己尝试,启动一个线程并让它取消引用一个空指针。您的回调在触发异常的任何线程上运行。

标签: windows process seh


【解决方案1】:

是的,向量异常处理程序是进程范围的。

来自MSDN

应用程序可以注册一个函数来监视或处理所有 应用程序的例外。矢量处理程序不是基于帧的, 因此,您可以添加一个将被调用的处理程序,而不管 您在调用框架中的位置。

New Vectored Exception Handling in Windows XP by Matt Pietrek 表示:

处理程序列表不绑定到任何线程,并且是全局的 过程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-14
    • 2020-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    相关资源
    最近更新 更多