我知道如何使用ADPlus或DebugDiag生成Crash Dump文件,但我想知道是否有办法在客户的计算机上执行此操作而不安装这些工具...具体来说,我希望能够配置我的应用程序(例如,使用注册表值)在严重故障的情况下生成崩溃转储。更具体地说,我需要能够从C#应用程序执行此操作,但如果有必要,我不介意P / Invoke。谢谢!
发布于 2019-04-16 09:05:01
您可以使用以下注册表脚本配置Windows错误报告(WER)以在特定目录中创建故障转储:
Windows注册表编辑器版本5.00
[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ Windows错误报告\ LocalDumps]
“DumpFolder”= “C:\\转储”
“DumpCount”= DWORD:00000064
“DumpType”= DWORD:00000002
“CustomDumpFlags”= DWORD:00000000
转储将进入C:\ Dumps,其名称反映崩溃进程的名称。DumpType = 2给出完整的内存转储。DumpType = 1给出了一个小型转储。在64位计算机上,您不需要将它们放在Wow32节点下。WER仅使用上面指定的非WOW注册表项。
根据崩溃的类型,此方法可能无效。我还没弄清楚为什么或哪些碰撞类型没有捕获。
https://stackoverflow.com/questions/-100001110
复制相似问题