代码之家  ›  专栏  ›  技术社区  ›  Roman Starkov

unhandledExceptionFilter的“应用程序定义”是什么?

  •  2
  • Roman Starkov  · 技术社区  · 14 年前

    MSDN describes UnhandledExceptionFilter 如下: 应用程序定义的函数,如果正在调试进程,则将未处理的异常传递给调试器。

    但是这个函数显然是由操作系统根据同一个页面在kernel32.dll中提供的。

    所以他们为什么叫它 应用程序定义的函数 ?

    2 回复  |  直到 14 年前
        1
  •  3
  •   Hans Passant    14 年前

    是的,语言很难听。这是一个 原型 函数的定义。它可以与uuExcept关键字一起使用,也可以用作setUnhandledExceptionFilter()的参数。两者都会使您的函数成为“应用程序定义函数”。

    如果两者都不做,调试器会自动在未处理的异常处停止。我想这就是他们所说的“将异常传递给调试器”的意思。SEH的SDK文档应该得到全面的失败等级。

        2
  •  1
  •   Remy Lebeau    14 年前

    unhandledExceptionFilter()本身不是内核提供的自己的函数(尽管内核实现了自己的默认实现,直到您用自己的实现覆盖它为止)。引用的unhandledExceptionFilter()文档描述了一个函数原型,如果您选择实现自己的函数并将其传递给setUnhandledExceptionFilter()函数以在内核中激活它,则必须遵循该原型。

    推荐文章
    Barry  ·  FS寄存器为空
    9 年前