在.NET 4.0中,借助转储调试支持,我们正在研究在C#程序崩溃后自动(当然要经过用户确认 :))创建minidumps并上传到我们的问题跟踪系统中,以便这些minidumps能帮助解决崩溃原因。
当使用WithFullMemory minidump类型时,一切正常。我们可以看到堆栈和堆变量。但是,即使对于小型C#程序,压缩后的转储文件也相当大。
如果我们使用“普通”minidump类型,则可以获得非常小的dump文件,但是受控调试器中甚至没有可用的堆栈变量信息。实际上,任何比WithFullMemory更少的选项在受控调试器中似乎都没有什么用处。我们尝试使用MINIDUMP_CALLBACK_ROUTINE将包含的模块信息限制为我们自己的模块,但似乎几乎对受控dump没有影响,但却仍然破坏了受控调试?
有人有什么提示可以在保持minidump有用的前提下修剪它们吗?