【问题标题】:Get Excel mini dump file without WER (Windows error reporting)获取没有 WER 的 Excel 迷你转储文件(Windows 错误报告)
【发布时间】:2015-05-10 03:41:01
【问题描述】:

我为针对 Windows 7 的 Excel 开发了一个非托管 C++ XLL 插件,并且希望能够在发生崩溃时在本地获取 dmp 文件。我知道它可以发送给 Microsoft,我可以订阅 WER 来获得它,但这样做会产生大量开销。我只需要核心转储。是否可以使用 Office 产品。我读过之前可以设置一些注册表值,但我不知道它是否可以在带有办公产品的 Windows 7 上。

Ps:我尝试设置 SetUnhandledExceptionFilter() 并重定向到我自己的处理程序,我将调用 MiniDumpWriteDump 我自己,但 Excel 必须在之前设置过滤器,因为我的永远不会被击中。

编辑: 虽然还没有完全成功,但我发现如果我在 Windows 错误报告键中设置注册表设置 DontShowUI,那么故障转储会生成到 %LOCALAPPDATA%\Microsoft\Windows\WER\ReportQueue。我不能将它重定向到所有应用程序,但它可以开始

【问题讨论】:

标签: c++ excel crash-dumps windows-error-reporting


【解决方案1】:

您不需要 WER 帐户来捕获小型转储文件。如果它遵循相同的崩溃报告方法(并且应该),您应该能够从 Excel 获取转储文件。你的怀疑是正确的。您需要设置一些WER regsitry keys and values。我已经在其他帖子中写过这个。更多信息请参考Getting detailed crash dumps from a hooked exe

【讨论】:

  • rrirwer,感谢您的回复,我看到了您之前的回答并尝试了此操作,但未捕获任何转储。你知道这是否特别适用于 excel 2007?
  • 我不希望 Excel 使用不同的方法来生成崩溃报告。如果您按照这些帖子中概述的步骤操作,它应该可以正常工作。
  • 我尝试了一切,但这似乎不起作用。如果我想从 EXECEL.EXE 转储并且我希望它们转到 C:\DUMPDATA 我需要设置哪些注册表项?
  • 正如我所指出的,Excel 可能使用不同的崩溃报告方法。但是,如果没有,则需要设置 LocalDumps\Excel.exe、DumpCount、DumpType 和 DumpFolder。在定义注册表项/值时确保您拥有管理员权限。
  • 我这样做了,我在我的机器上拥有管理员权限。我相信办公产品会做一些不同的事情。至少我不能让上述工作,
猜你喜欢
  • 2019-03-03
  • 1970-01-01
  • 1970-01-01
  • 2011-02-07
  • 2016-03-15
  • 1970-01-01
  • 2016-07-18
  • 1970-01-01
  • 2013-01-18
相关资源
最近更新 更多