问题标签 [windows-error-reporting]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2381 浏览

winapi - 如何在不出现 WER 对话框的情况下使 Windows-7 上的进程崩溃?

是否有可能在没有获得 Windows 错误报告 (WER) 对话框的情况下使 Windows-7 上的常规用户模式进程崩溃?(何时以及是否正常启用 WER 并且未应用特定标志。)

注意:我对禁用 WER感兴趣,我对未启动 WER 的崩溃场景感兴趣,尽管它应该启动并且 Windows“静默”终止应用程序。

在 Windows XP 上,编写一个 C 或 C++ 应用程序(在用户模式下)以这样的方式弄乱自己的地址空间是非常简单的,当最终引发访问冲突(或其他未处理的 Win32 异常)时,Windows XP 将只是默默地终止进程而不通知用户:

在一个简单的 C++ 项目中调用上述函数(在发布模式下——在测试时注意那些编译器优化——而不是在调试器下运行)将:

  • 在 XP 下静默终止进程。
  • 在 Windows-7 下显示 WER 崩溃对话框。
  • 旁白:在任何情况下,它都不会调用您自己的未处理异常过滤器,即使您设置了一个通过SetUnhandledExceptionFilter

我现在想知道的是 - 在 Windows 7 下 - WER 机制是否已经以一种方式实现,即我的应用程序中总是会出现崩溃[a]的错误对话框,或者即使在 Windows 7 中是否存在进程损坏情况,这将阻止 WER 对话框弹出?


我将添加一些我所做的阅读:

Windows via C/C++(Richter, Nasarre 第 5 版)一书中,他们描述了“故障过程”中发生的情况(第 711 页):

  1. 异常过滤器。
  2. ...
  3. ...
  4. 内核检测到未处理的异常
  5. 阻止对 Wer 服务的 ALPC 调用
  6. WER 报告开始。
  7. ...

现在,他们指出,Win7 的做法与 Windows XP 不同(引用本书第 710 页:)

... 从 Windows Vista 开始,该UnhandledExceptionFilter功能不再向 MS 的服务器发送错误报告。反而。内核检测到用户模式线程未处理异常(步骤 4)...

所以这意味着,根本没有办法让进程“崩溃”——在 Vista 及更高版本中——以一种阻止 WER 启动的方式。我试图确认或反驳这一点。


[a]:显然,通过调用各种*exitterminate*函数之一,可以轻松地“杀死”进程而不会留下任何痕迹。问题是,如果您可以排除这种终止原因,(如何)可能以阻止显示 WER 对话框的方式在 Win7 上“崩溃”用户模式进程。

0 投票
0 回答
2100 浏览

windows - Windows 错误报告 - 在加载依赖于服务的 windows dll-s 期间报告服务挂起

我有一个在 Win7 启动时启动的服务。如果我在启动后启动该服务,我在 Windows 错误报告服务报告的事件日志中找不到任何警告,但如果它在启动期间自动启动,我会得到以下信息:

查看生成的文件是说:

似乎在通过 Windows 加载程序加载服务时,它检测到一些看起来像挂起的东西。但是我在启动期间使用性能记录器收集了所描述报告的日志,我可以从中看到以下内容:

在此处输入图像描述

通过测量加载 .exe(从上图)和加载 WER 报告中未提及的模块(kernel32.dll)之间的距离,看起来不超过 200 毫秒(所有这些都是 microsoft dll-s)。我想知道为什么 WER 将其报告为挂起,以及 II 是否可以对此做些什么。我总是在系统启动时重现,而不是在任何其他情况下。

说明服务启动成功。这只是每次启动时烦人的事件查看器报告。

0 投票
2 回答
2334 浏览

c++ - Windows 错误报告何时创建转储文件?是否可配置?这在 Windows 7 中是否发生了变化?

我依靠Windows 错误报告为大型多线程应用程序创建完整的用户模式转储。我知道当我开始使用它时(2012 年初),这些转储包含所有应用程序内存,以及在应用程序崩溃时准确的所有线程的完整堆栈(引发未处理的异常等)。但在去年的某个未知时刻,WER 创建的故障转储发生了变化。它们仍然包含所有内存,但只显示一个线程,并且堆栈似乎来自进程已经关闭之后

这是一个使用 VS2010 SP1 编译的非托管(无法管理?)32 位 C++ 应用程序,在 64 位 Win7 SP1 上运行(并保持更新)。有谁知道去年改变了 WER 行为的任何 Windows 更新?除了“HKLM\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\AppName.exe”之外,还有什么可配置的吗?

此外,通过调用“RaiseFailFastException”来终止应用程序仍然会导致良好的转储,并为所有线程提供有效的堆栈。

0 投票
1 回答
98 浏览

windows - 报告在硬件开发中心仪表板中显示的要求是什么?

我在 Microsoft Windows Dev Center - Hardware 创建了一个帐户并签署了 Windows 错误报告协议。

然后,我引入了一个空指针取消引用来发布我在测试计算机上使用的签名驱动程序,并将 BSoD 报告发送给 Microsoft。

我使用 Microsoft 生态系统元数据交换来映射我的驱动程序名称并创建产品组。

从我在互联网上阅读的内容来看,这些应该是让报告显示在仪表板中的所有要求。自映射发生以来,该报告应该被更新了两次。

我也邮寄了 wer 并收到“一般需要 5 天”。后来,当我解释说已经过去了两周时,我得到了“对不起,让我与 WER 团队合作”。从那以后我没有听到任何消息。

我错过了一些额外的要求吗?

0 投票
1 回答
4189 浏览

iis - IIS 日志格式 - 最后一个值

我试图理解一些 IIS 日志的含义,因为我们不断遇到 500_Server_Error 导致它重新启动。

这些是最后的数字,我知道其中一些,但不是全部,有人以前经历过吗?

0 投票
1 回答
5665 浏览

excel - 如何自动强制关闭excel,然后重新启动?

在执行一些长时间运行的 VBA 代码(每天 24 小时运行)时,有时 excel 会冻结或崩溃,我正在研究以编程方式处理 excel 重新启动的方法。任何有关解决此问题的最佳方法的建议将不胜感激。

我的一个想法是编写一个 dotnet 应用程序,该应用程序可能由诸如“事件名称:APPCRASH”和“错误应用程序 EXCEL.EXE”之类的 Windows 日志记录错误事件触发,但我不知道这是否可行/明智的做法。

如果它碰巧是一种明智的方法,我会设想该应用程序可能执行以下任务;

1) 自动关闭/取消任何窗口错误弹出框,例如“您要发送有关该问题的更多信息吗?”、“Microsoft Excel 已停止工作”或“Microsoft Excel 正在尝试恢复您的信息”。

2)如果仍然打开(例如如果挂起)强制关闭excel,以及杀死任何excel.exe进程

3)重启excel

是否可以在 dotnet 中编写这样的应用程序?我应该寻找哪些参考资料/标签来查找更多信息?

谢谢,尤格

0 投票
0 回答
679 浏览

winapi - Win32:TerminateProcess 被 Windows 错误报告对话框击败

我正在开发一个程序(“A”),它使用 ShellExecuteEx 调用另一个偶尔崩溃的程序(“B”)。程序 A 可以检测到 B 的崩溃,并可以使用 TerminateProcess 杀死 B。

但是,当 B 崩溃时(在 A 终止它之前),会弹出 Windows 的“程序 B 已停止工作”对话框 (WerFault.exe)。因此,尽管 A 可以杀死 B,但每次 B 失败时都会留下一个 WerFault.exe 实例。

我想我可能会通过使用 WER api 调用 WerAddExcludedApplication 并将 B 放在排除列表中来获得一些乐趣。但是,似乎所做的只是更改“已停止工作”对话框,使其仅提供“关闭”和“调试”,并省略“在线检查解决方案”。

知道如何在不调用 WerFault.exe 的情况下让 B 崩溃吗?(Windows 7的)。

我确实看到了这个线程:How to crash a process on Windows-7 without getting the WER dialog? . 但是,其目的是确保始终调用 WER,而不是如何禁用或关闭它。

建议?

0 投票
1 回答
396 浏览

windows - 抑制“Excel 已停止工作”对话框

如何抑制/自动响应如下所示的“Microsoft Excel 已停止工作”对话框?我已经为有问题的 WB 禁用了自动保存功能。我想绕过对话框并立即启动自动重启。如果盒子停留的时间足够长(超过一个小时?),我认为它确实会重新启动,但我想要一种立即执行此操作的方法。

Excel 已停止工作

0 投票
1 回答
363 浏览

windbg - WER 能否产生类似于 .dump /ma 的转储

我的印象是转储产生了我的 winDbg

包含的不仅仅是一个完整的转储

配置WER解释了 DumpType 0:自定义转储 CustomDumpFlags MINIDUMP_TYPE 的按位组合 但是 什么十六进制值给出了与 .dump /ma 类似的转储

所有的位组合对我来说有点压倒性。

0 投票
1 回答
2144 浏览

c# - 使用 WER(Windows 错误报告)工具收集我们程序的 minidump

在一些项目中,我使用 MiniDump 生成函数来生成转储。

可以生成这些转储并将它们从机器复制到一些开发/测试机器并进行分析。

当程序在 Windows 上失败时,会显示一个表单,说明您要提交崩溃信息。也可以在我们的代码中添加一些函数来启用这个特性。

但是转储会发送到 Microsoft 的 Watson 服务器吗?

我想知道是否可以在我们的代码中编写这些 WER 启用功能并更新 CorporateWERServer 属性以使错误被转发到我们的服务器而不是 Microsoft。

因此,当我们的应用程序崩溃时,我们可能会使用 Microsoft 已经实现的功能自动收到通知。此外,是否有类似的实用程序可用于 Linux 端供程序员用于此类情况。