【问题标题】:when will SetUnhandledExceptionFilter not work? e.g. stack corruptions?SetUnhandledExceptionFilter 什么时候不起作用?例如堆栈损坏?
【发布时间】:2015-03-26 09:13:33
【问题描述】:

我想让我的代码为未处理的异常创建转储。 我曾想过使用 SetUnhandledExceptionFilter。但是 SetUnhandledExceptionFilter 可能无法按预期工作的情况是什么。例如,当堆栈上发生缓冲区溢出时,堆栈损坏问题怎么办? 在这种情况下会发生什么?是否有任何其他解决方案始终有效?

【问题讨论】:

    标签: exception-handling crash crash-reports crash-dumps


    【解决方案1】:

    我使用 SetUnhandledExceptionFilter 已经有一段时间了,并没有注意到任何未正确捕获的崩溃/问题。而且,如果在代码中的某个地方没有处理异常,它应该由过滤器处理。来自MSDN 关于过滤器...

    调用该函数后,如果进程发生异常 没有被调试,并且异常使其未处理 异常过滤器,该过滤器将调用异常过滤器函数 由 lpTopLevelExceptionFilter 参数指定。

    没有提到上述内容仅适用于某些类型的异常。

    我不使用过滤器来创建转储文件,因为应用程序使用 Microsoft WER 系统报告崩溃。相反,过滤器用于提供一个机会来收集两个附加文件,以附加到 Microsoft 将收集的崩溃报告(和转储文件)。

    这是 Microsoft 的应用程序崩溃报告仪表板示例,其中模块名称已编辑。

    您会看到收集的崩溃类型范围很广,包括堆栈缓冲区溢出。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-26
      相关资源
      最近更新 更多