【问题标题】:Disable application crash dumps on Windows 7在 Windows 7 上禁用应用程序故障转储
【发布时间】:2011-08-27 11:11:19
【问题描述】:

愚蠢的问题:如何防止 Windows 7 存储崩溃应用程序的内存转储?

我正在 C++ 应用程序中试验堆栈分配,所以玩具程序经常崩溃。对于每次崩溃,Windows 都会将内存转储到 %USER%/AppData/Local/CrashDumps。每个大约 150MB。如何禁用此功能?我已经在互联网上进行了广泛搜索。我在 Windows 7 上唯一能找到的是系统→高级→启动和恢复→系统故障崩溃转储,我已经禁用了这些。

这没什么大不了的,只是烦人,因为它位于我的用户资料中。

【问题讨论】:

    标签: windows-7 crash-dumps


    【解决方案1】:

    我认为负责在您的系统上创建所有这些转储文件的机制是 WER(Windows 错误报告)。您可以阅读如何在此处禁用它:http://www.techrena.net/windows/disable-windows-7-error-reporting/

    1. Win + R 打开 Windows 运行命令。在运行命令栏中键入“services.msc”并点击“确定”。
    2. 这将打开“服务”窗口,您可以在其中查看 Windows 当前可用的所有服务的列表。
    3. 右键单击Windows错误报告服务并选择“属性”。默认情况下,启动类型将是“自动”或“手动”。要完全禁用该服务,请选择“禁用”然后按“确定”。

    【讨论】:

    • 禁用该服务不会停止在我机器上的上述文件夹中生成转储。
    【解决方案2】:

    要禁用内存转储文件的创建或创建方式,请打开 regedit 并导航到以下注册表项:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl
    

    找到此键后,单击它并根据以下选项更改“CrashDumpEnabled”的值:

    0 = None
    1 = Complete memory dump
    2 = Kernel memory dump
    3 = Small memory dump (64KB)
    

    然后重启电脑使其生效。

    【讨论】:

    • 这些步骤用于禁用系统内存转储,而不是用于应用程序转储。当整个操作系统崩溃时会发生系统内存转储。
    【解决方案3】:

    HKEY_CURRENT_USER\Software\Microsoft\Windows\Windows Error Reporting 下,将Disabled 设置为REG_DWORD 等于1

    Source: MSDN

    【讨论】:

      【解决方案4】:

      为您的应用调用 WerAddExcludedApplication 函数

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-10
        • 2012-08-06
        • 1970-01-01
        • 2010-09-06
        相关资源
        最近更新 更多