自定义错误报告(XP 及更高版本)



这是一个有点复杂的问题,有几个问题。请随意只回答您有答案的问题。

我的任务是在我们的几个组件出现 Windows 异常的情况下创建小型转储,并支持 XP SP3 作为最小操作系统。 组件包括:

  • 独立C++应用
  • 将在
  • 已知浏览器中使用的 CSP 和 PKCS11 库 (DLL)
  • 一个 UI 和一个非 UI 服务
  • 静态库,在前面的所有三点中使用

要求是具有类似于WER的东西(从XP开始),但将报告发送到专用供应商服务器,而不是Microsoft当前的Winqual等效服务器。报告功能可以包装在一个静态库中真是太好了。

不过,也存在一些问题。DLL是特殊的野兽。如何仅在DLL代码中发生错误时才生成报告?服务可能还需要一些特殊处理,我目前还不知道。

首先,是否有已知的开源库可以帮助我完成此任务?如果没有,我将不得不自己滚。

我的第一个想法是在我的每个模块中都有一个睡眠的看门狗线程。此线程仅等待一个事件,该事件将从未处理的异常筛选器设置。线程将使用 MiniDumpWriteDump 生成报告,通过互联网发送,然后完成,在提到的过滤器中,我们将等待线程结束,然后终止进程。对此解决方案有任何想法吗?例如,本地系统帐户下的Windows服务可以访问互联网吗?

您不需要创建"等待异常"的线程。只需使用 UnhandledExceptionFilter 注册您自己的 Exception 处理程序。看看这个URL,它很好地解释了当发生异常时如何采取MiniDumpWriteDump。

在本地系统凭据下运行的 Windows 服务没有网络访问权限。

相关内容

  • 没有找到相关文章

最新更新