0

我有一个在 C:\Windows\SysWOW64 中生成 APPCRASH 转储的应用程序(不是自己写的)。转储时的应用程序已瘫痪,但以最低容量运行以不丢失数据。问题是这些转储非常大,以至于系统大部分时间都花在编写这些转储上,而应用程序在处理方面远远落后,很快就会开始丢失数据。

计划是完全禁用它,或者将其安装到 RAM 驱动器上,并在它们碰到 RAM 驱动器时立即清除它们。

现在我已经研究过使用这个键:

http://msdn.microsoft.com/en-us/library/windows/desktop/bb787181%28v=vs.85%29.aspx

但它所做的只是现在生成第二个转储而不是重定向原始转储。

转储名为:

转储-2013_03_31-15_23_55_772.dmp

这通常是 Windows 上开发人员的领域(使用 C/C++ 之类的东西),所以我想打他们,不要认为 ServerFault 能给我任何答案。

另外:它不是循环转储文件(它们将填充硬盘驱动器上剩余的 20GB),所以我不确定这是 Windows 行为还是应用程序中的自定义代码(如果它是...... ick!)。

4

1 回答 1

1

要编写 DumpFile,应用程序必须调用函数“MiniDumpWriteDump”,因此这不是系统的行为或您可以控制的东西,它是应用程序驱动的。如果它在崩溃时转储,它使用“SetUnhandledExceptionFilter”来设置自己的处理例程,然后(!)操作系统接管。不幸的是,我没有找到从其他进程覆盖这个处理程序的方法,所以剩下的唯一希望是,有一个用于切换行为或更改路径的应用程序的寄存器条目(因为我的应用程序有它的确切原因你描述)。

于 2013-09-04T13:05:26.797 回答